【发布时间】:2019-02-26 06:29:20
【问题描述】:
我正在尝试对我的 Django 模板中的 forloop.counter 执行多项数学运算。具体来说,我试图在 24 日之后每 29 次识别一次;所以第 24、53、82、111、140 个实例等......
我尝试了以下方法但没有成功:
{% if forloop.counter == 24 or widthratio forloop.counter|add:"-24" 29 1 %}
{% if forloop.counter == 24 or forloop.counter|add:"-24"|divisibleby:29 %}
有没有人有任何建议可以帮助我实现目标?非常感谢任何帮助!
【问题讨论】:
-
"我正在尝试对我的 Django 模板中的 forloop.counter 执行多个数学运算。" 不要那样做 (!)。 Django 模板语言被故意限制以避免在模板中做复杂的事情。这样的逻辑属于view。
-
目的是对表格中的这些行应用不同的 CSS 格式。可以通过视图实现吗?
-
当然,您可以
zip迭代中的条件,然后在模板中使用if来检查该数据。由于 Python 是“图灵完备的”,这意味着您可以在模板中执行的所有操作,都可以在视图中执行。 -
这不是图灵完备性的真正定义@WillemVanOnsem
-
@ubadub:不,这是图灵完备性的逻辑结果:)否则它不会以“Since”开头。关键是 Python 在概念上是图灵完备的,因此除非存在 Oracle 机器,否则这意味着您无法使用另一个无法用视图生成的图灵完备(并且功能更强大)的设备生成任何内容流。所以结果是,由于模板至多是图灵完备的,它不能产生视图不能产生的流。
标签: django for-loop django-templates