Menu
CoddyTech

テンプレート内のループ

CoddyのDjangoジャーニー「Djangoの基礎」セクションの一部。レッスン 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>

これはPythonの for と同じように動作し、table には順番に各項目が設定されます。テンプレートにはインデントのルールがないため、{% endfor %} でループを閉じます。省略可能な {% empty %} の部分は、リストが空の場合にのみ表示されます。

ループから参照できるのは drinks のようにコンテキスト内の名前だけで、views.py の変数は参照できません。

challenge icon

チャレンジ

簡単

drinks.htmlで、<ul>の中でdrinksをループ処理します。各ドリンクの名前を含む<li class="drink">を1つずつ表示します。ドリンクがない場合は、代わりに<li>No drinks today.</li>を表示します。

実行を押します: /drinks/には4つのドリンクが表示されます。

自分で試してみよう

<!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プレイグラウンド