【问题标题】:How to declare a variable and increment it in Django templates如何在 Django 模板中声明一个变量并增加它
【发布时间】:2020-06-02 18:01:31
【问题描述】:

如何在 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 中的每一行,我在其他部分得到相同的模板。如何将其更改为其他选项。

【问题讨论】:

  • 你还没有关闭 with 标签。请关闭它。 {% endwith %}
  • @pavan 有效,但 {{ forloop.i }} 无效。只获取其他部分的数据,我应该更改以获得每个数据的替代部分
  • 实际上没有像 forloop.i 这样的变量。 for 循环在循环中设置了许多可用的变量。请查看链接docs.djangoproject.com/en/3.0/ref/templates/builtins/#for

标签: django django-templates django-template-filters


【解决方案1】:

无需创建新变量。您可以使用普通的 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 %}

【讨论】:

    猜你喜欢
    • 2019-08-07
    • 2012-03-22
    • 2011-01-31
    • 2016-04-15
    • 1970-01-01
    • 2017-06-27
    • 2019-06-08
    • 2010-10-17
    • 1970-01-01
    相关资源
    最近更新 更多