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?

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 %}

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.