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, die freie Tische auflistet:
<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 Teil {% 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
EinfachIn drinks.html durchläufst du innerhalb des <ul> die drinks:
- ein
<li class="drink">pro Getränk mit seinem Namen; - wenn es keine Getränke gibt, stattdessen
<li>No drinks today.</li>.
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