шаблон django отображает значение элемента или пустую строку

88

Мой код в шаблоне выглядит так:

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

Я хочу отобразить значение элемента, если поле item.somefield не равно None, или отобразить пустую строку. Я не хочу использовать оператор {% if item.somefield%}, мне нужно что-то вроде {{item.somefield или ''}} (я пробовал это, но это не работает)

Роджер Лю
источник

Ответы:

225

Вам нужен default_if_noneшаблонный фильтр ( док ).

default_if_none отобразит данную строку, если переменная - «Нет».

default отобразит строку, если переменная оценивается как False, т.е. пустые строки, пустые списки и т. д.

{{ item.somefield|default_if_none:"" }}
{{ item.somefield|default:"" }}
Rockingskier
источник
Спасибо @rockingskier;)
Moe Far
12
{{ item.somefield|default_if_none:"" }}
Matino
источник
5
Возможно, вы захотите добавить к своему ответу некоторые пояснения, а не просто код. Это поможет человеку, задавшему вопрос, лучше понять ваш ответ.
Виктор Заманян