Проблема с рендерингом простого флажка в Django - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь сделать простой флажок (логический флажок) в 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 голосов
/ 07 мая 2018

Я наконец нашел проблему!

Когда вы используете <label>, вы должны определить идентификатор, и он должен быть таким же, как <input>.

Как:

<input id="id_1" type="checkbox">
<label for="id_1">
{{ form }}
</label> </input>
0 голосов
/ 02 мая 2018

Используйте следующий HTML-код:

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

Кроме того, наименование Form как-то не очень специфично и может вводить в заблуждение с Form из django.forms, который при использовании будет отображаться как пустая форма.

...