21

我有一个带有使用 CheckboxSelectMultiple 小部件的选择字段的表单:

foo = forms.ChoiceField(widget=forms.CheckboxSelectMultiple,
                        choices=(
                                  ("1", "ONE"),
                                  ("2", "TWO"),
                                 ))

表单显示两个复选框很好,但它不验证。

如果我同时选中这两个复选框,我会收到错误消息:选择一个有效的选择。[u'1', u'2'] 不是可用选项之一

选择一个复选框也不起作用,它给了我:选择一个有效的选择。[u'1'] 不是可用的选项之一。

这里发生了什么?

4

2 回答 2

32

如果您将该字段设置为 forms.MultipleChoiceField 而不是 forms.ChoiceField 它会更好。

于 2009-04-14T03:52:52.393 回答
6

愿这对你有帮助

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')
于 2010-08-03T05:25:52.877 回答