Циклы в шаблонах
Часть раздела Основы 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.
Задание
ЛегкоВ 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
1Ваш первый сайт на Django
Привет, DjangoВторая страница4Макеты и статические файлы
Наследование шаблоновЗаголовок для каждой страницы3Шаблоны
Ваш первый шаблонПеременные шаблонаПотренируйтесь самостоятельно: Песочница Django