如何检查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 。
我有一个带有基本模型 (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 。