有没有办法跟踪 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 次。我该怎么做?
Django 模板语言不鼓励模板中的逻辑。对于您给出的示例,最好在视图中创建一个包含三辆福特汽车的查询集。
cars = Car.objects.all()
fords = cars.filter(make="Ford")[:3]
然后在模板中循环遍历它:
{% for ford in fords %}
{{ ford.price }}
{% endfor %}
有一个内置的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 %}
编辑
如果您阅读文档,这就是它所读的内容。
内置筛选器参考
add
将参数添加到值中。
例如:
{{ value|add:"2" }} 如果值为 4,则输出将为 6。