2009-04-14 15 views
19

Ho una forma con una scelta di campo che utilizza widget di CheckboxSelectMultiple:forma con CheckboxSelectMultiple non convalidare

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

La forma rende soddisfacente mostra due caselle, tuttavia non convalida.

Se seleziono entrambe le caselle, viene visualizzato un errore: selezionare una scelta valida. [u'1 ', u'2'] non è una delle scelte disponibili

Anche la selezione di una casella di controllo non funziona, consente di: Selezionare una scelta valida. [u'1 '] non è una delle opzioni disponibili.

Cosa sta succedendo qui?

risposta

30

Se si rende il campo un form.MultipleChoiceField anziché un forms.ChoiceField funzionerà meglio.

4

maggio di utile per voi

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")) 

Se si desidera passare direttamente l'oggetto ORM, allora si può provare il seguente

num_list = forms.ModelMultipleChoiceField(Numbers.objects.all(), required=True, widget=forms.CheckboxSelectMultiple(), label='Select No')