django template affiche la valeur de l'élément ou une chaîne vide

88

Mon code dans le modèle est comme ceci:

{% for item in items %}
    {{ item.somefield }}
{% endfor %}

Je veux afficher la valeur de l'élément si le champ item.some n'est pas None, ou afficher une chaîne vide. Je ne veux pas utiliser l'instruction {% if item.somefield%}, je veux quelque chose comme {{item.somefield ou ''}} (j'ai essayé mais cela ne fonctionne pas)

Roger Liu
la source

Réponses:

225

Vous voulez le default_if_nonefiltre de modèle, ( doc ).

default_if_none affichera la chaîne donnée si la variable est «Aucune».

default affichera la chaîne si la variable vaut False, c'est-à-dire des chaînes vides, des listes vides, etc.

{{ item.somefield|default_if_none:"" }}
{{ item.somefield|default:"" }}
bascule
la source
Merci @rockingskier;)
Moe Far
12
{{ item.somefield|default_if_none:"" }}
matino
la source
5
Vous voudrez peut-être ajouter une explication à votre réponse, plutôt que simplement du code. Cela aide la personne qui a posé la question à mieux comprendre votre réponse.
Victor Zamanian