Ответ 1
Если вы создадите поле form.MultipleChoiceField, а не form.ChoiceField, он будет работать лучше.
У меня есть форма с полем выбора, в котором используется виджет CheckboxSelectMultiple:
foo = forms.ChoiceField(widget=forms.CheckboxSelectMultiple,
choices=(
("1", "ONE"),
("2", "TWO"),
))
Форма отображает два флажка, но не подтверждает.
Если я выберу оба флажка, я получаю сообщение об ошибке: выберите допустимый выбор. [u'1 ', u'2'] не является одним из доступных вариантов
Выбор одного флажка тоже не работает, он дает мне: выберите допустимый выбор. [u'1 '] не является одним из доступных вариантов.
Что здесь происходит?
Если вы создадите поле form.MultipleChoiceField, а не form.ChoiceField, он будет работать лучше.
Пусть это поможет вам
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')