如何检查django模板中是否存在模型实例

How to check if instance of model exists in django template

我有一个带有基本模型 (Job) 的 Django 应用程序。现在在我的模板中,我想检查该模型的实例是否存在。如果没有什么可以显示,我想投影一个文本,否则我想显示模型属性。

有点像(这显然行不通):

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

{{ job.title }}

{% else %}

hola

{% endif %}

也尝试过:

 {% for job in jobs %}

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

  {% endfor %}

它不起作用是有道理的,因为如果它不存在,我如何循环遍历它或 return 某些东西。有没有一种简单的方法可以在模板中做到这一点?还是我必须编写自己的函数?或者有什么方法可以做到这一点?

当然非常感谢您的帮助

您可以使用 {% if %} 标签。作为 Django doc says:

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 文档中有 an example