如何在Django模板中访问具有嵌套for循环的最外层forloop.counter?
是否有可能在Django的以下模板中访问forloop.counter for the outermost for循环:
{% for outerItem in outerItems %} {% for item in items%} <div>{{ forloop.counter }}. {{ 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 }}. {{ item }}</div> {% endfor %} {% endwith %} {% endfor %}
如果使用高版本的Django,你可以使用
{% with outer_counter = forloop.counter %}
我已经检查过,Django 1.4.x – Django 1.9.x支持这两种方法。
当有多个for循环时,这是更清楚的