9
votes

Y a-t-il un moyen de faire de l'Usstatefield de Django () pour ne pas avoir de valeur présélectionnée?

J'utilise Usstatefield () de la LocalFravor de Django dans l'un de mes modèles: xxx

puis j'ai fait un formulaire de cette classe: xxx p> Lorsque j'affiche le formulaire, le champ "State" est une boîte déroulante avec "Alabama" pré-sélectionné.

existe-t-il un moyen de rendre la boîte déroulante pour afficher NO pré-sélectionnée valeur du tout?


0 commentaires

5 Réponses :


10
votes

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 ): xxx

ci-dessus code de ici .


1 commentaires

Merci beaucoup, c'est la chose que je cherchais.



3
votes

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) 


0 commentaires

1
votes

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.


0 commentaires

3
votes

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)


0 commentaires

2
votes

Une solution simple: xxx


0 commentaires