Jinja嵌套for循环中如何指定引用外层/内层循环?
在Jinja双层循环中指定引用的loop变量
完全可行,Jinja为嵌套循环提供了loop.parent属性,用来访问外层循环的loop对象,多层嵌套时还可以通过链式调用loop.parent.parent来访问更外层的循环。
针对你给出的双层循环示例,要区分内外层循环的索引可以这样写:
{% for row in rows %} --OUTER LOOP <tr> {% for column in Columns %} -- INNER LOOP <td>{{ row[column] }} 内层索引: {{ loop.index }} | 外层索引: {{ loop.parent.index }}</td> {% endfor %} </tr> {% endfor %}
- 直接用
loop.index会引用当前所在的内层循环的索引; - 用
loop.parent.index则会引用外层循环的索引。
如果是三层及以上的嵌套循环,每往外一层就多追加一个.parent即可,比如最外层循环的索引可以通过loop.parent.parent.index来访问(中间层的loop.parent指向最外层循环的loop对象)。
内容的提问来源于stack exchange,提问作者Luca Guarro
相关产品推荐
相关产品推荐

