【问题标题】:Get loop index of outer loop获取外循环的循环索引
【发布时间】:2010-12-06 17:46:32
【问题描述】:

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

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

【问题讨论】:

    标签: jinja2 template-engine


    【解决方案1】:

    将其存储在变量中,例如:

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

    【讨论】:

    • 请注意,索引将从 1 开始,而不是 0。
    • 另请注意 loop.index0 会让您访问从 0 开始的索引 (jinja.pocoo.org/docs/dev/templates/#for)
    • 如果我们想将循环索引显示为表格中的行号怎么办?这里的代码没有考虑到这一点,内部循环将显示为 1 直到它结束。我们如何处理?
    【解决方案2】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 2014-04-30
    • 2014-06-20
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2012-08-20
    • 2013-03-19
    相关资源
    最近更新 更多