6
votes

Comment puis-je itération sur les choix Django dans un modèle - sans utiliser de forme ou d'instance de modèle

J'utilise actuellement des choix pour définir une liste de mois et une liste de jours de la semaine.

Je souhaite afficher ces listes de choix dans mes modèles sans nécessairement en rapport avec une instance ou un formulaire spécifique.

Par exemple ...

dans mes modèles: xxx

à mon avis: xxx

dans mon modèle: xxx

Les sorties de code ci-dessus: xxx

Comment sortir le nom ( ou valeur) de chaque choix?

Alternativement, y a-t-il une meilleure façon d'enregistrer un mois et un jour de la semaine pour un modèle - et une présentation ultérieure des instances avec un mois et une journée?

merci! :)


0 commentaires

3 Réponses :


3
votes
{% for month in month_choices %}
{{ month.1 }}<br />
{% endfor %}
Although semantically you should probably use <ul> and <li> rather than <br>.

2 commentaires

Merci! Je vais donner ça une go ... Je n'utilise pas vraiment de
BTW - J'utilise réellement les choix pour organiser des articles dans une table ... avec des mois formant un axe - et des jours en formant un autre. Je ne suis pas sûr que l'utilisation de choix dans la meilleure façon de le faire - mais je ne trouve pas un moyen facile de construire un champ Django qui représente vraiment des mois - et présente une liste de mois à l'utilisateur.


Avez-vous une idée de la même chose dans une vue? .1 ne semble pas fonctionner ... Je suis en boucle à travers les choix et c'est émettre le tuple entier.



9
votes

Vous pouvez simplement décompresser le tuple lors de l'itération sur celui-ci:

{% for n, month in month_choices %}
{{ n }}, {{ month }}<br />
{% endfor %}


0 commentaires

19
votes

Il y a une meilleure façon de le faire.

{% for value, text in form.[field_name].field.choices %}
    {{ value }}: {{ text }}
{% endfor %}


0 commentaires