Правила валидации нескольких флажков, работают только при выборе каждого флажка
У меня есть шаблон, который проходит через набор запросов и создает флажок для каждого элемента, который, похоже, является проблемой валидации. Я могу отправить его только тогда, когда отмечу каждый флажок, и я просто не могу понять, что не так.
мой шаблон:
<form method="POST">
{% csrf_token %}
<fieldset>
{% for choice in choices %}
{{ choice.description }}
<input type="checkbox" value="{{choice.section}}" name="sections" required="">
{% endfor %}
<button type="submit">Submit</button>
</fieldset>
my forms.py
class AddSectionForm(forms.Form):
sections = forms.MultipleChoiceField(
required=False, widget=forms.CheckboxSelectMultiple())
---- edit ----
Уф, я идиот, это required="" в объекте html checkbox!
Спасибо, Виллем, вы поняли! Также нужно было изменить значения чекбоксов для первичных ключей.
forms.py:
class AddSectionForm(forms.Form):
sections = forms.MultipleChoiceField(
required=True, widget=forms.CheckboxSelectMultiple(),
choices=Section.objects.all().values_list())
template:
<form method="POST">
{% csrf_token %}
<fieldset>
{% for choice in choices %}
{{ choice.description }}
<input type="checkbox" value="{{choice.pk}}" name="sections">
{% endfor %}
<button type="submit">Submit</button>
</fieldset>
Ваши флажки не должны иметь required="", иначе их необходимо проверять. Кроме того, вероятно, более элегантно использовать ModelMultipleChoiceField:
class AddSectionForm(forms.Form):
sections = forms.ModelMultipleChoiceField(
queryset=Section.objects.all(),
required=True,
widget=forms.CheckboxSelectMultiple()
)