如何在Django模板中访问具有嵌套for循环的最外层forloop.counter?

是否有可能在Django的以下模板中访问forloop.counter for the outermost for循环:

{% for outerItem in outerItems %} {% for item in items%} <div>{{ forloop.counter }}.&nbsp;{{ item }}</div> {% endfor %} {% endfor %} 

forloop.counter在上面的例子中返回最里面的for循环的计数器

你可以使用forloop.parentloop来到外部forloop ,所以在你的情况{{forloop.parentloop.counter}}

你也可以

在一个简单的名字下caching一个复杂的variables。 当访问多次“昂贵”的方法(例如命中数据库的方法)时,这非常有用。

 {% for outerItem in outerItems %} {% with forloop.counter as outer_counter %} {% for item in items%} <div>{{ outer_counter }}.&nbsp;{{ item }}</div> {% endfor %} {% endwith %} {% endfor %} 

如果使用高版本的Django,你可以使用

 {% with outer_counter = forloop.counter %} 

我已经检查过,Django 1.4.x – Django 1.9.x支持这两种方法。

当有多个for循环时,这是更清楚的