Menu
CoddyTech

Циклы в шаблонах

Часть раздела Основы Django путешествия по Django на Coddy. Урок 13 из 23.

У кафе появилась новая страница — /drinks/. Её представление передаёт каждый напиток в шаблон под именем drinks, но список на странице пуст. Тег {% for %} повторяет HTML для каждого элемента. Страница со списком свободных столиков:

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

Он работает как цикл for в Python: переменной table по очереди присваивается каждый элемент. В шаблонах нет правил отступов, поэтому {% endfor %} завершает цикл. Необязательная часть {% empty %} отображается, только если список пуст.

Цикл видит только имена из контекста, например drinks, но не переменные из views.py.

challenge icon

Задание

Легко

В drinks.html перебери drinks внутри <ul>. Для каждого напитка выведи его название в отдельном элементе <li class="drink">. Если напитков нет, вместо этого покажи <li>No drinks today.</li>.

Нажми Выполнить: на странице /drinks/ отображаются четыре напитка.

Попробуйте сами

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

Все уроки раздела Основы Django

Потренируйтесь самостоятельно: Песочница Django