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?

Daniel Kivatinos
quelle

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>
Paolo Bergantino
quelle
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
12

{{forloop.last}}

fuentesjr
quelle