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



有没有办法跟踪 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。

最新更新