我的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;这样做的方式。
谢谢=)
答案 0 :(得分:4)
您可以使用内置ifchanged模板标记:
{% ifchanged %}
{% if some_time > result.time %}
<hr />
{% endif %}
{% endifchanged %}