Get loop index of outer loop

Jinja2Template Engine

Jinja2 Problem Overview


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?

Jinja2 Solutions


Solution 1 - Jinja2

Store it in a variable, for example:

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

Solution 2 - Jinja2

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionflybywireView Question on Stackoverflow
Solution 1 - Jinja2Lukáš LalinskýView Answer on Stackoverflow
Solution 2 - Jinja2Kannan GanesanView Answer on Stackoverflow