Afficher un champ de modèle booléen dans un formulaire django sous la forme d'un bouton radio plutôt que dans la case à cocher par défaut
C'est la façon dont je suis sur, pour afficher un modèle Booléen champ dans le formulaire de Radio boutons Oui et Non.
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
Comme vous pouvez le voir dans le code ci-dessus, j'ai besoin d'un propre méthode qui convertit la chaîne d'entrée à un entier, ce qui peut être inutile.
Est-il un meilleur et/ou djangoic façon de le faire. Si oui, comment?
Et non, l'utilisation de BooleanField
semble causer beaucoup plus de problèmes. L'aide qui me semblait évident; mais il ne l'est pas. Pourquoi est-il si.
source d'informationauteur Lakshman Prasad
Vous devez vous connecter pour publier un commentaire.
Utilisation
TypedChoiceField
.Utilisez cette option si vous souhaitez que l'horizontale moteur de rendu.
http://djangosnippets.org/snippets/1956/
Si vous voulez traiter avec des booléens au lieu de l'ints c'est la façon de le faire.