Je veux que mon champ de choix dans Modelform ait une option vierge (-------) mais c'est nécessaire. P>
Je dois avoir une option vide pour empêcher l'utilisateur de sauter accidentellement le champ, sélectionnez ainsi la mauvaise option. P>
4 Réponses :
dans l'argument Ajouter null = true
J'aime ce p> http://docs.djangoproject.com/fr/dev/ref/models/fields/ p> pour votre commentaire p>
N'est-ce pas pour le champ facultatif? Je veux que cela soit nécessaire mais qu'il n'y a pas de valeur par défaut.
THEME_CHOICES = (((('-', '------), (' Dr ',' Domaine_registery '),) Thème = Modèles.Charmarfield (max_length = 2, choix = thème_choices)
Vous pouvez valider le champ avec Clean_foo CODE>
foo = forms.ModelChoiceField(queryset=Foo.objects.all(),
empty_label="-------------")
Ceci fonctionne pour au moins 1,4 et la version ultérieure:
CHOICES = ( ('', '-----------'), ('foo', 'Foo') ) class FooForm(forms.Form): foo = forms.ChoiceField(choices=CHOICES)
C'est une bonne idée, et cela évite d'écrire un validateur personnalisé.
Vous pouvez également remplacer la méthode __ init __ de formulaire et modifier la méthode et modifier l'attribut de champ code> code>, réaffectant une nouvelle liste de tuples. (Cela peut être utile pour les modifications dynamiques):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['my_field'].choices = [('', '---------')] + self.fields['my_field'].choices