在Django模板中跟踪计数器并将值增加1

时间:2017-04-11 15:30:54

标签: python django

有没有办法跟踪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次循环。我该怎么做呢?

2 个答案:

答案 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.