我有一个带有使用CheckboxSelectMultiple小部件的选择字段的表单:
foo = forms.ChoiceField(widget=forms.CheckboxSelectMultiple,
choices=(
("1", "ONE"),
("2", "TWO"),
))
表单呈现正常显示两个复选框,但它不会验证。
如果我同时选中这两个复选框,则会收到错误:选择有效选项。 [u'1',u'2']不是可用的选择之一
选择一个复选框也不起作用,它给了我:选择一个有效的选择。 [u'1']不是可用的选择之一。
这里发生了什么?
答案 0 :(得分:30)
如果你将该字段设为form.MultipleChoiceField而不是forms.ChoiceField,它将更好地工作。
答案 1 :(得分:5)
这对你有帮助
num_choices = ( ("1", "ONE"), ("2", "TWO"), ("3", "Three"), ("4", "Four"))
num_list = forms.MultipleChoiceField(choices=num_choices, required=True, widget=forms.CheckboxSelectMultiple(), label='Select No', initial=("1", "2"))
如果要直接传递ORM对象,则可以尝试以下
num_list = forms.ModelMultipleChoiceField(Numbers.objects.all(), required=True, widget=forms.CheckboxSelectMultiple(), label='Select No')