私はチェックボックスを使ってDjangoフォームを作成したいと考えています。気象に関係なく、チェックボックスをオンまたはオフにしてPOSTリクエストでは検出されません。テンプレートのコードはチェックボックス付きのDjangoフォームは常にFalseです
です<form action="annotate_page" method="post">{% csrf_token %}
<input id="repeat" type="checkbox" >
<label for="repeat">Repeat Sentence?</label>
<br>
<button type="submit">Next</button><br>
</form>
は、ここに私のforms.py-ここ
from django import forms
class AnnotateForm(forms.Form):
repeat=forms.BooleanField(required=False)
が私の見解がいるロジックさ
if request.method=="POST":
form = AnnotateForm(request.POST)
if form.is_valid():
print(request.POST)#prints only csrf_token in Query_dict
print(form.cleaned_data["repeat"])#Always false
かかわらずです気候のチェックボックスがチェックされているかどうかにかかわらず、printステートメントは常にFalseを返します。
質問にも似ていますが、私の問題は解決しません。
をキャプチャする文句を言わない、チェックボックスは、 'repeat'という名前です。しかし、あなたのhtmlテンプレートでは、チェックボックスには全く名前がありません! (idは 'repeat'ですが、それは同じものではありません) –
どうしてhtmlのフォームフィールドをハードコーディングしていますか? '{{form.as_p}} 'を使用すると、Djangoがフォームを描画します。 –