Django 模板中的"只显示一次
我在我的Django模板里有一个for循环,它会打印出一堆结果(每个结果都有时间戳)。我想在时间戳达到某个值时打印一段特定的数据(比如一个
),但我只想打印一次。
{% for result in set %}
{% if some_time > result.time %}
<hr />
{% endif %}
{{ result.info }}
{% endfor %}
这样做没问题,但它会对每个符合条件的结果都打印这个
。我想要的是只在第一次满足条件时打印。
类似这样的:
{% if some_time > result.time and bool_flag %}
不过,由于Django的模板不支持在里面赋值,我有点不知道该怎么办。我能想到几种方法(比如使用一个可以在模板中访问的类/函数来切换标志,或者在视图中做更多处理,但我担心这样会增加数据库的调用次数和数据的迭代),但我在想有没有一种简单又“django风”的方法来做到这一点。
谢谢=)
1 个回答
4
你可以使用内置的 ifchanged 模板标签:
{% ifchanged %}
{% if some_time > result.time %}
<hr />
{% endif %}
{% endifchanged %}