Elementwert der Django-Vorlage oder leere Zeichenfolge

86

Mein Code in der Vorlage sieht folgendermaßen aus:

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

Ich möchte den Elementwert anzeigen, wenn das Feld item.somefield nicht None ist, oder eine leere Zeichenfolge anzeigen. Ich möchte die Anweisung {% if item.somefield%} nicht verwenden, sondern etwas wie {{item.somefield oder ''}} (ich habe es versucht, aber es funktioniert nicht).

Roger Liu
quelle

Antworten:

218

Sie möchten den default_if_noneVorlagenfilter ( doc ).

default_if_none zeigt die angegebene Zeichenfolge an, wenn die Variable 'Keine' ist.

default zeigt die Zeichenfolge an, wenn die Variable False ergibt, dh leere Zeichenfolgen, leere Listen usw.

{{ item.somefield|default_if_none:"" }}
{{ item.somefield|default:"" }}
rockingskier
quelle
Danke @rockingskier;)
Moe Far
12
{{ item.somefield|default_if_none:"" }}
Matino
quelle
5
Vielleicht möchten Sie Ihrer Antwort eine Erklärung hinzufügen, anstatt nur Code. Dies hilft der Person, die die Frage gestellt hat, Ihre Antwort besser zu verstehen.
Victor Zamanian