У меня есть приложение django с базовой моделью (Job). Теперь в моем шаблоне я хотел бы проверить, существует ли экземпляр этой модели или нет. Я хочу проецировать текст, если пока нечего показывать, иначе я хотел бы показать атрибуты модели.
Как-то так (что явно не работает):
{% if job.title != "" %}
{{ job.title }}
{% else %}
hola
{% endif %}
Также пробовал:
{% for job in jobs %}
{% if job.title %}
{{ job.title }}
{% else %}
Hola
{% endif %}
{% endfor %}
Имеет смысл, что это не работает, потому что как я могу пройти через это или вернуть что-то, если оно не существует. Есть ли простой способ сделать это даже в шаблоне? Или мне нужно написать свою функцию? Или как это сделать?
Помощь конечно очень приветствуется
{% for ... %} ... {% empty %} ... {% endfor %}
- это конструкция, которую вы хотите. Проверьте документыэто золото! Именно то, что мне было нужно, большое спасибо!
Вы можете использовать тег {% if %}
. Как Джанго док говорит:
The
{% if %}
tag evaluates a variable, and if that variable is “true” (i.e. exists, is not empty, and is not a false boolean value) the contents of the block are output.
Итак, вы можете сделать что-то вроде этого:
{% if job %}
{{ job.title }}
{% else %}
<p>Hi from Uruguay</p>
{% endif %}
Если вам нужно это внутри for, как сказал @dirkgroten, вам нужно использовать тег {% empty %}
. В документе Django есть пример.
большое спасибо!! В итоге я использовал тег {% empty %}, который работает именно так, как я хотел. Идеально!!
как вы создаете свою переменную
jobs
и передаете ее в представление?