【问题标题】:How to check if instance of model exists in django template如何检查 django 模板中是否存在模型实例
【发布时间】:2019-09-01 05:45:23
【问题描述】:

我有一个带有基本模型(工作)的 django 应用程序。现在在我的模板中,我想检查该模型的实例是否存在。如果还没有要显示的内容,我想投影一个文本,否则我想显示模型属性。

不知何故(这显然行不通):

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

{{ job.title }}

{% else %}

hola

{% endif %}

也试过了:

 {% for job in jobs %}

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

  {% endfor %}

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

当然非常感谢帮助

【问题讨论】:

  • 你是如何构造 jobs 变量并将其传递给视图的?
  • {% for ... %} ... {% empty %} ... {% endfor %} 是您想要的构造。检查docs
  • 那是金!正是我需要的,非常感谢!

标签: python django django-templates exists


【解决方案1】:

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

{% if %} 标记评估一个变量,如果该变量为“真”(即存在、不为空且不是假布尔值),则输出块的内容。

所以你可以这样做:

{% if job %}

{{ job.title }}

{% else %}

<p>Hi from Uruguay</p>

{% endif %}

如果您在 for 中需要这个,正如@dirkgroten 所说,您需要使用{% empty %} 标签。 Django 文档中有an example

【讨论】:

  • 非常感谢!!我最终使用了 {% empty %} 标记,它的工作方式与我想要的完全一样。完美!!
猜你喜欢
  • 2011-09-07
  • 1970-01-01
  • 2021-02-26
  • 2018-10-21
  • 2011-11-20
  • 2021-07-02
  • 1970-01-01
  • 2015-08-07
  • 2016-03-13
相关资源
最近更新 更多