Schleifen in Vorlagen
Teil des Abschnitts Django-Grundlagen der Django-Journey von Coddy. Lektion 13 von 23.
Das Café hat eine neue Seite, /drinks/. Die View übergibt jedes Getränk als drinks an das Template, aber die Liste auf der Seite ist leer. Das Tag {% for %} wiederholt den HTML-Code einmal pro Element. Eine Seite, auf der freie Tische aufgelistet werden:
<ul>
{% for table in free_tables %}
<li>Table {{ table }} is free.</li>
{% empty %}
<li>Every table is taken.</li>
{% endfor %}
</ul>Es funktioniert wie Pythons for, wobei table nacheinander auf jedes Element gesetzt wird. Templates haben keine Einrückungsregeln, daher schließt {% endfor %} die Schleife. Der optionale Abschnitt {% empty %} wird nur angezeigt, wenn die Liste leer ist.
Die Schleife sieht nur Namen im Kontext, wie drinks, nicht die Variablen aus views.py.
Aufgabe
EinfachSchleife in drinks.html innerhalb des <ul> über drinks. Jedes Getränk erhält ein <li class="drink"> mit seinem Namen. Wenn keine Getränke vorhanden sind, zeige stattdessen <li>No drinks today.</li> an.
Klicke auf Ausführen: /drinks/ listet vier Getränke auf.
Probier es selbst
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Our Drinks</title>
</head>
<body>
<h1>Our Drinks</h1>
<ul>
<!-- one <li class="drink"> per drink -->
</ul>
</body>
</html>
Alle Lektionen in Django-Grundlagen
1Deine erste Django-Website
Hallo, DjangoEine zweite Seite4Layouts und statische Dateien
Template-VererbungEin Titel für jede Seite3Vorlagen
Deine erste VorlageVariablen in VorlagenÜbe selbstständig: Django-Playground