Dies ist, wie ich ging über ein Boolesche Modellfeld in Form anzuzeigen, wie Radio-Buttons Ja und NeinZeigen Sie ein Feld boolean Modell in einer django Form als Optionsfeld anstatt die Checkbox Standard
choices = ((1,'Yes'),
(0,'No'),
)
class EmailEditForm(forms.ModelForm):
#Display radio buttons instead of checkboxes
to_send_form = forms.ChoiceField(choices=choices,widget=forms.RadioSelect)
class Meta:
model = EmailParticipant
fields = ('to_send_email','to_send_form')
def clean(self):
"""
A workaround as the cleaned_data seems to contain u'1' and u'0'. There may be a better way.
"""
self.cleaned_data['to_send_form'] = int(self.cleaned_data['to_send_form'])
return self.cleaned_data
Wie Sie im obigen Code sehen können, brauche ich eine clean-Methode, die die Eingabezeichenfolge in eine Ganzzahl konvertiert, die möglicherweise unnötig ist.
Gibt es einen besseren und/oder djangoic Weg, dies zu tun. Wenn das so ist, wie?
Und nein, mit BooleanField
scheint viel mehr Probleme zu verursachen. Das zu benutzen erschien mir offensichtlich; aber es ist nicht. Wieso ist es so.
Note, die Auswahl ist eine Folge von Paaren (siehe http://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.ChoiceField). Nicht ganz sicher, was in den Paaren ist, tho. – dfrankow
Ich schaute in widgets.py, Auswahlen ist eine Liste von Tupeln des Formulars (choice_value, choice_label). – dfrankow