Как проверить, существует ли экземпляр модели в шаблоне django

У меня есть приложение django с базовой моделью (Job). Теперь в моем шаблоне я хотел бы проверить, существует ли экземпляр этой модели или нет. Я хочу проецировать текст, если пока нечего показывать, иначе я хотел бы показать атрибуты модели.

Как-то так (что явно не работает):

{% if job.title != "" %}

{{ job.title }}

{% else %}

hola

{% endif %}

Также пробовал:

 {% for job in jobs %}

      {% if job.title %}
      {{ job.title }}
      {% else %}
      Hola
      {% endif %}

  {% endfor %}

Имеет смысл, что это не работает, потому что как я могу пройти через это или вернуть что-то, если оно не существует. Есть ли простой способ сделать это даже в шаблоне? Или мне нужно написать свою функцию? Или как это сделать?

Помощь конечно очень приветствуется

как вы создаете свою переменную jobs и передаете ее в представление?

wpercy 10.04.2019 19:19
{% for ... %} ... {% empty %} ... {% endfor %} - это конструкция, которую вы хотите. Проверьте документы
dirkgroten 10.04.2019 19:19

это золото! Именно то, что мне было нужно, большое спасибо!

Micromegas 10.04.2019 19:28
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
4 335
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать тег {% 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 %}, который работает именно так, как я хотел. Идеально!!

Micromegas 10.04.2019 22:55

Другие вопросы по теме