Python 2D forloop计数器django模板

Python 2D forloop计数器django模板,python,django,django-templates,Python,Django,Django Templates,我在django中使用了2D forloop,如下所示: {% for temp in data.lines.all %} {% for item in temp.articles.all %} <section class="{{ counter of these loops }}" > {% include "page.html" %}

我在django中使用了2D forloop,如下所示:

        {% for temp in data.lines.all %}
            {% for item in temp.articles.all %}

                <section class="{{ counter of these loops }}" >
                    {% include "page.html" %}
                </section>

            {% endfor %}
        {% endfor %}
{%用于data.lines.all%中的临时值]
{temp.articles.all%中项目的%s}
{%include“page.html”%}
{%endfor%}
{%endfor%}
现在把{{这些循环的计数器}}放在什么地方来得到循环计数器的数量

如果第一个循环有4个元素,每个元素有5个子元素,那么现在在结束时我也必须有

计数器=20

解决方案可以是从类创建计数器对象,如

class Counter:
    counter = 0

    def increment(self):
        self.counter += 1
    def set_to_zero(self):
        self.counter = 0
并在上下文中传递它。 然后您可以使用

{{ counter.increment }}

但是这很难看,因为如果有许多循环,则必须在上下文中传递大量变量,而且大多数情况下,更改模板中对象的状态是个坏主意。

在自定义筛选器中:

def multiply_rows(value, arg):
    return value*arg
{{forloop.counter|multiply_rows forloop.parentloop.counter}} 
在模板中:

def multiply_rows(value, arg):
    return value*arg
{{forloop.counter|multiply_rows forloop.parentloop.counter}} 

可能是您的解决方案。

这不是您的代码,因为Django模板中没有赋值语法。好的,这只是我的问题。我已经解决了。