我正在尝试将所有选中的复选框值作为列表,但由于选项选项无法验证表单
forms.py:
class MarkAccountsForm(forms.Form):
accounts = forms.MultipleChoiceField(
widget = forms.CheckboxSelectMultiple,
required = False
)
模板:
{% for account in accounts %}
<tr>
<td><input type="checkbox" name="accounts" value="{{ account.id }}"></td>
<td>{{ account.name }}</td>
</tr>
{% endfor %}
views.py:
if request.method == 'POST':
form = MarkAccountsForm(request.POST)
if form.is_valid(): #this fails
data = form.cleaned_data
当我尝试打印form.errors
时,它会显示Select a valid choice. 1119 is not one of the available choices.
有没有办法可以避免选择验证,仍然可以将所有帐户的值复选框作为列表进行检查?我怎么说它允许任何选择?如果我可以在没有表单验证的情况下获得列表,那么这也很好。
答案 0 :(得分:1)
如果您不关心验证,为什么要拨打is_valid
?实际上,你为什么要使用Form类呢?您没有使用它来显示表单,因此您可以将其完全删除,只需从request.POST.getlist('accounts')
获取数据。