首页 > 解决方案 > 如何在 Django 模板中声明一个变量并增加它

问题描述

如何在 Django 模板中初始化数值变量。

{% with i=1 %}
    {% for cont in data %}

    {% if i|divisibleby:3 %}
         {{ forloop.i }}
    <!-- HTML -->

    {% elif i|divisibleby:2 %}
         {{ forloop.i }}
    <!-- HTML -->

    {% else %}
         {{ forloop.i }}
    <!-- HTML -->

    {% endif %}
   {% endfor %}

由于 {% with i=1 %} 而出现此错误

TemplateSyntaxError at /tools-dash/

Unclosed tag on line 21: 'with'. Looking for one of: endwith.

变量 i 不会被每个 {{ forloop.i }} 递增。对于 DB 中的每一行,我在其他部分得到相同的模板。如何将其更改为替代的。

标签: djangodjango-templatesdjango-template-filters

解决方案


无需创建新变量。您可以使用正常的 for 循环,并检查是否forloop.counter可被 3 或 2 整除。像这样:

{% for cont in data %}

    {% if forloop.counter|divisibleby:3 %}
        {{ forloop.counter }}
        <!-- HTML -->

    {% elif forloop.counter|divisibleby:2 %}
        {{ forloop.counter }}
        <!-- HTML -->

    {% else %}
        {{ forloop.counter }}
        <!-- HTML -->

    {% endif %}

{% endfor %}

推荐阅读