有没有办法跟踪Django模板中的计数器,只有在满足某个条件时才将其值增加1?
例如,我想做这样的事情:
{% with car_counter=0 %}
{% for car in cars %}
{% if car.make=="Ford" and car_counter < 3 %}
{{car.price}}
??? increment car_counter ???
{% endif %}
{% endfor %}
{% endwith %}
如果遇到这种情况,我想只执行3次循环。我该怎么做呢?
答案 0 :(得分:2)
Django模板语言不鼓励模板中的逻辑。对于您给出的示例,最好在视图中创建一个包含三辆福特汽车的查询集。
"CatAge", "Descending"
然后在模板中循环:
[HttpPost]
答案 1 :(得分:-2)
有一个内置的add
过滤器。 https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#add
{% with car_counter=0 %}
{% for car in cars %}
{% if car.make=="Ford" and car_counter < 3 %}
{{car.price}}
{{ car_counter|add:"1" }}
{% endif %}
{% endfor %}
{% endwith %}
<强> EDITED 强>
如果你阅读文档,这就是它的内容。
内置过滤器参考
add
将参数添加到值。
例如:
{{value | add:“2”}}如果value为4,则输出为6.