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

时间:2012-04-20 22:42:50

标签: 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模板,而不是在我看来这样做!

由于

1 个答案:

答案 0 :(得分:5)

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

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

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