351 votes

Django : Valeur choix d’affichage

Modèle :

views.py :

Sur le modèle, quand je l’appelle person.gender, j’obtiens suis "ou « F » au lieu de « Masculin » ou « Féminins ». Comment afficher la valeur (« Masculine » ou « Féminine ») au lieu de la code(M/F) ?

686voto

jMyles Points 2737

On dirait que tu étais sur la bonne voie - get_FOO_display(), c’est très certainement ce que vous voulez :

http://docs.djangoproject.com/en/dev/Ref/Models/instances/#Django.db.Models.Model.get_FOO_display

Dans les modèles, vous n’incluez pas () au nom d’une méthode. Procédez comme suit :

-53voto

Devin Points 842

J'ai récemment déménagé au-delà de Django, donc je suis plus familier avec Jinja2 de template, mais ici, nous allons:

Notez qu'il est stocké dans la base de données comme un " M " et "F"

Pseudo:

# Iterate through list of people  
  # Check if male  
    # output span w/ gender  

Réel:

{% for person in latest_person_list2 %}  
{% if person.gender == 'M' %}  
  <span>Male</span>  
{% else %}  
  <span>Female</span>  
{% endif %}  
{% endfor %}  

Pour quelque chose de plus complexe avec plus de choix, il peut être intéressant d'écrire un peu de logique à chercher à travers le CATEGORY_CHOICES tuple de tuples. Maintenant, avec deux choix pour le sexe, je ne vois pas ce qui est le cas.

voir aussi: Django Template Tags

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X