带复选框的Django表单始终为False

时间:2017-12-12 05:45:46

标签: python django checkbox

我希望创建一个带复选框的Django表单。无论天气如何我检查或取消选中该框,在POST请求中都没有检测到。这是模板的代码 -

<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。

我知道有类似的问题,但他们没有解决我的问题。

1 个答案:

答案 0 :(得分:2)

<form action="annotate_page" method="post">{% csrf_token %}

      <input id="repeat" name="something" type="checkbox" >
                <label for="repeat">Repeat Sentence?</label>


      <br>

      <button type="submit">Next</button><br>

 </form>

并在视野中

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["something"])#Always false

你需要在输入字段中给出一个名字,否则就不会被捕获