Menu
CoddyTech

Условия в шаблонах

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

Кофемашина сломалась. У каждого напитка теперь есть значение "sold_out" — True или False, а в списке должны быть отмечены напитки, которые нельзя заказать.

Тег {% if %} показывает свою часть только тогда, когда его условие истинно. Список столиков:

{% for table in tables %}
    <li>
        Table {{ table.number }}:
        {% if table.free %}Free{% else %}Taken{% endif %}
    </li>
{% endfor %}

Как и оператор if в Python, он может содержать {% elif %} и {% else %}, сравнивает значения с помощью ==, <, and, or и not и заканчивается тегом {% endif %}. Внутри цикла обращайся к значениям элемента через имя цикла: table.free. Отдельного free в контексте нет, поэтому оно считается ложным, и его часть никогда не отображается.

challenge icon

Задание

Легко

В drinks.html, внутри каждого <li class="drink"> и после названия добавляй <span class="sold-out">Sold out</span> только тогда, когда этот напиток закончился.

Нажми Запустить: на /drinks/ только Hot Chocolate отмечен как закончившийся.

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Our Drinks</title>
</head>
<body>
    <h1>Our Drinks</h1>
    <ul>
        {% for drink in drinks %}
            <li class="drink">{{ drink.name }}</li>
        {% empty %}
            <li>No drinks today.</li>
        {% endfor %}
    </ul>
</body>
</html>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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

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