获取外部循环的索引

96

在jinja中,变量loop.index保存当前正在运行的循环的迭代数。

当我有嵌套循环时,如何在内部循环中获取外部循环的当前迭代次数?

在内部循环中,可以使用 `loop.parent` 访问外部循环,然后使用 `loop.parent.index` 获取外部循环的当前迭代次数。
2个回答

167

把它存储在一个变量中,例如:

{% for i in a %}
    {% set outer_loop = loop %}
    {% for j in a %}
        {{ outer_loop.index }}
    {% endfor %}
{% endfor %}

4
请注意,索引将从1开始而不是0。 - scottydelta
5
请注意,loop.index0 可以让您从 0 开始访问索引 (http://jinja.pocoo.org/docs/dev/templates/#for)。 - Scott Yang
1
如果我们想在表格中将循环索引显示为行号怎么办?这里的代码没有考虑到内部循环将一直显示为1直到结束。我们该如何处理? - senaps

-12

在嵌套循环中,您可以使用loop.parent来获取外部循环的上下文

{% for i in a %}
    {% for j in i %}
        {{loop.parent.index}}
    {% endfor %}
{% endfor %}

这是比使用临时变量更干净的解决方案。 来源 - http://jinja.pocoo.org/docs/templates/#for


11
这是错误的。Jinja 不支持 .parent。请参考 http://jinja.pocoo.org/docs/tricks/#accessing-the-parent-loop 和 http://jinja.pocoo.org/docs/templates/#for。 - Romz
1
也许@KannanGanesan想到的是twig - Sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接