12
votes

Option vierge dans le champ Choice requis

Je veux que mon champ de choix dans Modelform ait une option vierge (-------) mais c'est nécessaire.

Je dois avoir une option vide pour empêcher l'utilisateur de sauter accidentellement le champ, sélectionnez ainsi la mauvaise option.


0 commentaires

4 Réponses :


-2
votes

dans l'argument Ajouter null = true

J'aime ce xxx

http://docs.djangoproject.com/fr/dev/ref/models/fields/


pour votre commentaire xxx


2 commentaires

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)



6
votes

Vous pouvez valider le champ avec Clean_foo CODE>

foo = forms.ModelChoiceField(queryset=Foo.objects.all(), 
                    empty_label="-------------")


0 commentaires

25
votes

Ceci fonctionne pour au moins 1,4 et la version ultérieure:

CHOICES = (
    ('', '-----------'),
    ('foo', 'Foo')
)

class FooForm(forms.Form):
    foo = forms.ChoiceField(choices=CHOICES)


1 commentaires

C'est une bonne idée, et cela évite d'écrire un validateur personnalisé.



1
votes

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


0 commentaires