質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

511閲覧

djangoでsucces_urlで指定しても同じページになってしまいます。

Mario_11

総合スコア95

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/01/14 23:40

https://qiita.com/okoppe8/items/54eb105c9c94c0960f14
上記のサイトを参考にwebアプリを作ろうとしています。
succes_urlで指定したurl(href="#")、本来であれば、register:top に移動するはずなのですが、保存ボタンを押してもURLに#がつくだけで同じページのままになりました。
さらに、未入力で保存するボタンを押した場合エラーが出るはずなのですがそれも出ないです。
何が原因かわかりますでしょうか?

models.py

python

1class Item(models.Model): 2 3 SEX_CHOICES = ( 4 (1, '男性'), 5 (2, '女性'), 6 ) 7 8 name = models.CharField( 9 verbose_name='名前', 10 max_length=200, 11 ) 12 age = models.IntegerField( 13 verbose_name='年齢', 14 validators=[validators.MinValueValidator(1)], 15 blank=True, 16 null=True, 17 ) 18 sex = models.IntegerField( 19 verbose_name='性別', 20 choices=SEX_CHOICES, 21 default=1 22 ) 23 memo = models.TextField( 24 verbose_name='備考', 25 max_length=300, 26 blank=True, 27 null=True, 28 ) 29 created_at = models.DateTimeField( 30 verbose_name='登録日', 31 auto_now_add=True 32 ) 33 34 # 管理サイト上の表示設定 35 def __str__(self): 36 return self.name 37 38 class Meta: 39 verbose_name = 'アイテム' 40 verbose_name_plural = 'アイテム'

views.py

python

1class ItemFilterView(LoginRequiredMixin, FilterView): 2 model = Item 3 4 # デフォルトの並び順を新しい順とする 5 queryset = Item.objects.all().order_by('-created_at') 6 7 # django-filter用設定 8 filterset_class = ItemFilter 9 strict = False 10 11 # 1ページあたりの表示件数 12 paginate_by = 10 13 14 # 検索条件をセッションに保存する 15 def get(self, request, **kwargs): 16 if request.GET: 17 request.session['query'] = request.GET 18 else: 19 request.GET = request.GET.copy() 20 if 'query' in request.session.keys(): 21 for key in request.session['query'].keys(): 22 request.GET[key] = request.session['query'][key] 23 24 return super().get(request, **kwargs) 25 26 27# 詳細画面 28class ItemDetailView(LoginRequiredMixin, DetailView): 29 model = Item 30 31 32# 登録画面 33class ItemCreateView(LoginRequiredMixin, CreateView): 34 model = Item 35 form_class = ItemForm 36 success_url = reverse_lazy('register:top') 37 38 39# 更新画面 40class ItemUpdateView(LoginRequiredMixin, UpdateView): 41 model = Item 42 form_class = ItemForm 43 success_url = reverse_lazy('register:top') 44 45 46# 削除画面 47class ItemDeleteView(LoginRequiredMixin, DeleteView): 48 model = Item 49 success_url = reverse_lazy('register:top')

urls.py

python

1 path('', views.ItemFilterView.as_view(), name='top'), 2 path('create/', views.ItemCreateView.as_view(), name='create'), 3 path('update/<int:pk>/', views.ItemUpdateView.as_view(), name='update'), 4 path('delete/<int:pk>/', views.ItemDeleteView.as_view(), name='delete'),

forms.py

python

1class ItemForm(forms.ModelForm): 2 3 class Meta: 4 model = Item 5 fields = ('name','age','sex','memo') 6 widgets = { 7 'name': forms.TextInput(attrs={'placeholder':'記入例:山田 太郎'}), 8 'age': forms.NumberInput(attrs={'min':1}), 9 'sex': forms.RadioSelect(), 10 'memo': forms.Textarea(attrs={'rows':4}), 11 }

item_form.html

html

1{% extends "register/base.html" %} 2{% load crispy_forms_tags %} 3{% block content %} 4{{ form.certifications.errors }} 5<div class="container"> 6 <div class="row"> 7 <div class="col-12"> 8 <h2 class="text-center">データ入力</h2> 9 </div> 10 </div> 11 <div class="row"> 12 <div class="col-12"> 13 <div class="float-right"> 14 <a class="btn btn-outline-secondary" href="{% url 'register:top' %}">戻る</a> 15 <a class="btn btn-outline-secondary save" href="#">保存</a> 16 </div> 17 </div> 18 </div> 19 <div class="row"> 20 <div class="col-12"> 21 <form method="post" id="myform"> 22 {%crispy form%} 23 </form> 24 </div> 25 </div> 26 <div class="row"> 27 <div class="col-12"> 28 <div class="float-right"> 29 <a class="btn btn-outline-secondary" href="{% url 'register:top' %}">戻る</a> 30 <a class="btn btn-outline-secondary save" href="#">保存</a> 31 </div> 32 </div> 33 </div> 34</div> 35{% endblock %}

views。pyには上記のコードの他にユーザーログイン情報などに(detailview,updateview)などを使っているのですが
エラーが出る原因になりうるでしょうか?
必要な物があれば追記致しますのでよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

staticのディレクトリの移動ができていませんでした。

投稿2020/01/15 03:08

Mario_11

総合スコア95

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問