J'utilise Usstatefield () de la LocalFravor de Django dans l'un de mes modèles: puis j'ai fait un formulaire de cette classe: p> existe-t-il un moyen de rendre la boîte déroulante pour afficher NO pré-sélectionnée
valeur du tout? p> p>
5 Réponses :
Cela semble être un problème connu (bien que je ne sois pas au courant d'un billet - je double-vérifier qu'il n'y a pas de billet pour cela, et sinon, fichier il ): ci-dessus code de ici . p> p>
Merci beaucoup, c'est la chose que je cherchais.
Je n'aime pas vraiment l'idée d'insérer ----- dans la liste manuellement. Lorsque le champ est réglé sur vide = true, l'option vide doit apparaître automatiquement en haut de la liste de sélection. De plus, si votre champ d'état est sur le profil et que vous utilisez Django-profils, vous vous retrouvez dans la position de devoir modifier une application réutilisable.
Je trouve plus facile et plus propre de copier le tuple State_choices de la Fichier Contrib / localFavor / US / Us_Stats.py dans les constantes.py dans mon projet, puis dans Models.py:
import constants state = models.CharField(blank=True, max_length=2, choices=constants.STATE_CHOICES)
Le piratage suivant semble également fonctionner dans l'administrateur Django et les formulaires définis dans les vues:
class USStateField(Field):
def __init__(self, *args, **kwargs):
from us_states import STATE_CHOICES
kwargs.setdefault('max_length', 2)
kwargs.setdefault('choices', STATE_CHOICES)
super(USStateField, self).__init__(*args, **kwargs)
# etc. etc.
Il suffit de signaler que cela est corrigé! Notez également que localFavor est maintenant un package tiers et après l'installation (par exemple, PIP Installation django-localforver code>), il peut être utilisé comme ceci: from localflavor.us.us_states import STATE_CHOICES
from localflavor.us.models import USStateField
class MyClass(models.Model):
state = USStateField(choices=STATE_CHOICES)
Une solution simple: