Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Schleife 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

Übe selbstständig: Django-Playground