在Django中渲染一个简单的复选框很麻烦

时间:2018-05-02 19:14:21

标签: python django checkbox boolean

我尝试在Django中渲染一个简单的复选框(一个布尔复选框)。

form.py

class Stateform(forms.Form):
     state = forms.BooleanField()

HTML

<form "..." method="post">{% csrf_token %}
<input type="checkbox">  
<label>{{ form }}</label>
</input>
</form>

view.py

def Defstate(request, *args):

  if request.method =='POST':
      form = Stateform(request.POST)
      if form.is_valid():
            ...
  else :
      form = Stateform()
  context = {
      'form': Stateform(),
      }
return render(request, 'Page1/Page3.html', context)

它正确显示了复选框,但我无法选中复选框...

2 个答案:

答案 0 :(得分:0)

使用以下HTML代码:

<form action="..." method="post">
    {{ form }}
    <input type="submit" value="Submit">
</form>

同样,Form的命名在某种程度上并不是非常具体,可能会误导Form来自django.forms,这会在使用时呈现为空格式。

答案 1 :(得分:0)

我终于找到了问题!

使用<label>时,您必须定义一个ID,它应与<input>相同。

喜欢:

<input id="id_1" type="checkbox">
<label for="id_1">
{{ form }}
</label> </input>