21

CheckboxSelectMultiple ウィジェットを使用している選択肢フィールドを持つフォームがあります。

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

フォームは 2 つのチェックボックスを表示して正常にレンダリングされますが、検証されません。

両方のチェックボックスを選択すると、エラーが発生します: 有効な選択肢を選択してください。[u'1', u'2'] は利用可能な選択肢の 1 つではありません

チェックボックスを 1 つ選択しても機能しません。有効な選択肢を選択してください。[u'1'] は利用可能な選択肢の 1 つではありません。

何が起きてる?

4

2 に答える 2

32

フィールドを forms.ChoiceField ではなく、forms.MultipleChoiceField にすると、うまく機能します。

于 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 に答える