Menu
CoddyTech

Pętle w szablonach

Część sekcji Podstawy Django ścieżki Django w Coddy. Lekcja 13 z 23.

Kawiarnia ma nową stronę: /drinks/. Jej widok przekazuje każdy napój do szablonu jako drinks, ale lista na stronie jest pusta. Tag {% for %} powtarza kod HTML raz dla każdego elementu. Strona z listą wolnych stolików:

<ul>
{% for table in free_tables %}
    <li>Table {{ table }} is free.</li>
{% empty %}
    <li>Every table is taken.</li>
{% endfor %}
</ul>

Działa to podobnie jak for w Pythonie, przy czym zmienna table przyjmuje kolejno wartość każdego elementu. Szablony nie mają reguł wcięć, więc {% endfor %} zamyka pętlę. Opcjonalna część {% empty %} wyświetla się tylko wtedy, gdy lista jest pusta.

Pętla widzi tylko nazwy z kontekstu, takie jak drinks, a nie zmienne z pliku views.py.

challenge icon

Wyzwanie

Łatwy

W pliku drinks.html wykonaj pętlę po drinks wewnątrz <ul>:

  • jeden element <li class="drink"> dla każdego napoju, zawierający jego nazwę;
  • gdy nie ma żadnych napojów, zamiast tego użyj <li>No drinks today.</li>.

Naciśnij Uruchom: /drinks/ wyświetla listę czterech napojów.

Spróbuj swoich sił

<!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>

Wszystkie lekcje w sekcji Podstawy Django

Poćwicz samodzielnie: Edytor online Django