Menu
CoddyTech

テンプレート内の条件分岐

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 はコンテキストに存在しないため、偽として扱われ、その部分は表示されません。

challenge icon

チャレンジ

簡単

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>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Djangoの基礎のすべてのレッスン

自分で練習してみよう: Djangoプレイグラウンド