flybywire
flybywire

Reputation: 273802

Get loop index of outer loop

In jinja, the variable loop.index holds the iteration number of the current running loop.

When I have nested loops, how can I get in the inner loop the current iteration of an outer loop?

Upvotes: 104

Views: 56165

Answers (3)

David Peters
David Peters

Reputation: 17

@senaps I just changed outer_loop.index to index0 this returns the iteration with a 0 index. So the first item starts with a 0

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

Upvotes: 1

Kannan Ganesan
Kannan Ganesan

Reputation: 1

You can use loop.parent inside a nested loop to get the context of the outer loop

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

This is a much cleaner solution than using temporary variables. Source - http://jinja.pocoo.org/docs/templates/#for

Upvotes: -13

Lukáš Lalinský
Lukáš Lalinský

Reputation: 41306

Store it in a variable, for example:

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

Upvotes: 180

Related Questions