plantilla django muestra el valor del elemento o una cadena vacía

88

Mi código en la plantilla es así:

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

Quiero mostrar el valor del elemento si el campo item.somefield no es Ninguno, o mostrar una cadena vacía. No quiero usar la declaración {% if item.somefield%}, quiero algo como {{item.somefield o ''}} (intenté esto pero no funciona)

Roger Liu
fuente

Respuestas:

225

Quieres el default_if_nonefiltro de plantilla, ( doc ).

default_if_none mostrará la cadena dada si la variable es 'Ninguna'.

default mostrará la cadena si la variable se evalúa como Falso, es decir, cadenas vacías, listas vacías, etc.

{{ item.somefield|default_if_none:"" }}
{{ item.somefield|default:"" }}
rockingskier
fuente
Gracias @rockingskier;)
Moe Far
12
{{ item.somefield|default_if_none:"" }}
matino
fuente
5
Es posible que desee agregar alguna explicación a su respuesta, en lugar de solo código. Esto ayuda a la persona que hizo la pregunta a comprender mejor su respuesta.
Victor Zamanian