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, 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.

challenge icon

Aufgabe

Einfach

In 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

Übe selbstständig: Django-Playground