Schleifenindex der äußeren Schleife abrufen

74

In jinja enthält die Variable loop.index die Iterationsnummer der aktuell laufenden Schleife.

Wie kann ich in der inneren Schleife die aktuelle Iteration einer äußeren Schleife abrufen, wenn ich verschachtelte Schleifen habe?

Flybywire
quelle

Antworten:

118

Speichern Sie es in einer Variablen, zum Beispiel:

{% for i in a %}
    {% set outer_loop = loop %}
    {% for j in a %}
        {{ outer_loop.index }}
    {% endfor %}
{% endfor %}
Lukáš Lalinský
quelle
2
Beachten Sie nur, dass der Index von 1 und nicht von 0
beginnt
2
Beachten Sie auch, dass Sie mit loop.index0 ab 0 ( jinja.pocoo.org/docs/dev/templates/#for ) auf den Index zugreifen können
Scott Yang
1
Was wäre, wenn wir den Schleifenindex als Zeilennummer in einer Tabelle anzeigen wollten? Dieser Code hier berücksichtigt dies nicht und die innere Schleife wird bis zum Ende als 1 angezeigt. Wie gehen wir damit um?
Senaps
-7

Sie können loop.parent in einer verschachtelten Schleife verwenden, um den Kontext der äußeren Schleife abzurufen

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

Dies ist eine viel sauberere Lösung als die Verwendung temporärer Variablen. Quelle - http://jinja.pocoo.org/docs/templates/#for

Kannan Ganesan
quelle
6
Das ist falsch. Jinja unterstützt .parent nicht. Siehe jinja.pocoo.org/docs/tricks/#accessing-the-parent-loop und jinja.pocoo.org/docs/templates/#for .
Romz
Vielleicht dachte @KannanGanesan an einen Zweig .
Sam