模板中的条件
本课属于 Coddy Django 学习旅程的“Django 基础”单元。第 14 课,共 23 课。
热巧克力机坏了。现在每种饮料都有一个 "sold_out" 值,True 或 False,列表应标记出你无法点的饮料。
{% if %} 标签只会在条件为真时显示它的部分内容。桌子列表:
{% for table in tables %}
<li>
Table {{ table.number }}:
{% if table.free %}Free{% else %}Taken{% endif %}
</li>
{% endfor %}和 Python 的 if 一样,它可以使用 {% elif %} 和 {% else %},用 ==、<、and、or 和 not 进行比较,并以 {% endif %} 结束。在循环中,通过循环的名称读取项目的值:table.free。单独的 free 不在上下文中,会被视为假,因此它的部分内容永远不会显示。
挑战
简单在 drinks.html 中,在每个 <li class="drink"> 内部的名称后面,仅当对应饮品已售完时,添加 <span class="sold-out">Sold out</span>。
按“运行”:在 /drinks/ 页面上,只有 Hot Chocolate 会显示 Sold out。
亲手试试
<!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>
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
Django 基础中的所有课
自己练习: Django 在线编辑器