当我有一个if里面的时候,Django模板检查为空

Ser*_*eim 0 python django django-templates

我的模板中有以下代码:

{% for req in user.requests_made_set.all %}
  {% if not req.is_published %}
    {{ req }}
  {% endif %}
{% empty %}
  No requests
{% endfor %}

如果有一些请求但是没有is_published = True那么我怎么能输出一条消息(比如"No requests")?我只想使用Django模板而不是在我看来这样做!

谢谢

kon*_*iik 5

即使这可能在模板中实现,我(也可能是许多其他人)会建议反对它.要实现这一点,您基本上需要确定数据库中是否存在符合某些条件的任何对象.这肯定不属于模板.

模板旨在用于定义显示内容的方式.您正在解决的任务是确定要显示的内容.这绝对属于视图而不是模板.

如果您希望避免将其放在视图中,只是因为您希望信息显示在每个页面上,而不管视图如何,请考虑使用上下文处理器,该处理器会自动将所需信息添加到模板上下文,或者编写模板标记会为你解决这个问题.