実現したいこと
DjangoでformViewを使って整数を受け取ろうとしているがうまくいかない
発生している問題
submitボタンを押すと
:8000/video/1csrfmiddlewaretoken=qWC0WfCjnfIxVs5mJzrUs5svVeLqohFB8x1a2lPwcP2HOG2oQf1vKZ2GIzhblzaJ&durations=1
上のようなリンクに飛んでしまう
また、form_valid()の中に書かれているprint関数が呼び出されていない。
該当のソースコード
python
1(views.py) 2 3from django.views.generic.edit import FormView 4from tube_extension.forms import DurationForm 5 6class WatchVideoView(FormView): 7 form_class=DurationForm 8 template_name = "tube_extension/video_detail.html" 9 success_url = "/" 10 11 def form_valid(self,form): 12 print("成功") 13 return super().form_valid(form);
python
1(forms.py) 2 3 from django import forms 4 5 class DurationForm(forms.Form): 6 durations = forms.IntegerField() 7
python
1(urls.py) 2 3from django.urls import path 4from . import views 5 6urlpatterns = [ 7 path('admin/', admin.site.urls), 8 path('video/<pk>', views.WatchVideoView.as_view(), name="detail"),
html
1(video_detail.html) 2 3<form name="form2"> 4 {% csrf_token %} 5 {{ form.as_p }} 6 <input type="submit" value="Add duration"> 7</form>
補足情報(FW/ツールのバージョンなど)
実際は他にも色々コードは書いてあるのですが、関係がありそうなところだけ記載しました。もし何か必要な情報があればご指摘ください。
###追記
ご指摘があったのでコード全体を載せておきます
https://github.com/ryo2003/test
ここがみたいなど具体的な指示をいただければ表示いたします。
回答1件
あなたの回答
tips
プレビュー