Wie überprüfe ich die Django-Vorlage auf Iteration der letzten Schleife?


100

Ich habe eine grundlegende Frage: Wie können Sie in der Django-Vorlagensprache feststellen, ob Sie sich bei der letzten Schleifeniteration in einer forSchleife befinden?

Antworten:


228

Sie würden verwenden forloop.last. Beispielsweise:

<ul>
{% for item in menu_items %}
    <li{% if forloop.last %} class='last'{% endif %}>{{ item }}</li>
{% endfor %}
</ul>

2
Wenn verschachtelte Schleifen vorhanden sind, wird dann die innerste Schleife überprüft?
Tagar

4
Ist dies eine Funktion einer neueren Jinja-Version? "Rendering-Vorlage: 'forloop' ist undefiniert" für {% if not (forloop.last)%}, {% endif%}
Tagar

1
Wenn verschachtelte Schleifen vorhanden sind, forloop.parentloopgreifen Sie auf die Schleife zu, die die aktuelle Schleife umgibt. Um nach der letzten Iteration einer übergeordneten Schleife zu suchen, könnte man verwenden forloop.parentloop.last. Siehe die Dokumentation . @Tagar
ndmeiri

Kurz gesagt, forloop.lastwird nach der letzten Iteration der innersten Schleife gesucht.
Ndmeiri

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.