Django在模板中“显示一次”

时间:2010-12-20 02:46:02

标签: python django django-templates

我的django模板中有一个for循环,它打印出一大堆结果(每个结果都带有时间戳)。我希望在时间戳达到某个值后打印任意一段数据(例如< hr />),但我只想打印一次。

{% for result in set %}

{% if some_time > result.time %}
 <hr />
{% endif %}

{{ result.info }}

{% endfor %}

这很好,除了它会打印上述等于true的每个结果的HR。我之后所做的只是第一次打印。

类似的东西:

{% if some_time > result.time and bool_flag %}

现在,由于Django不支持在其模板中分配变量,所以我有点不知所措。我可以想到几种方法(使用模板可访问的类/函数来切换标志,或者在视图中执行更多处理,但我担心这将增加数据库调用和迭代数据) ,但我想知道是否有一个很好的简单&#34; djangoey&#34;这样做的方式。

谢谢=)

1 个答案:

答案 0 :(得分:4)

您可以使用内置ifchanged模板标记:

{% ifchanged %}
    {% if some_time > result.time %}
        <hr />
    {% endif %}
{% endifchanged %}