Menu
CoddyTech

テンプレートフィルター

CoddyのDjangoジャーニー「Djangoの基礎」セクションの一部。レッスン 15/23。

ドリンクの一覧にはドリンクの数を表示し、$3.50のように価格を表示する必要がありますが、{{ drink.price }}は3.5を出力します。フィルターは、テンプレートが値を出力するときにその値を変更します。フィルターは|の後に続き、コロンの後に引数を取るものもあります:

{{ guest.name|upper }}         {# ADA #}
{{ rating|floatformat:1 }}     {# 4.7, when rating is 4.66 #}
{{ boxes|length }} box{{ boxes|pluralize:"es" }}
{# ... #}はテンプレートコメントで、表示されることはありません。floatformatの引数は、常に表示する小数点以下の桁数です。lengthはリストの項目数を数え、pluralizeは、数がちょうど1でない場合に語尾を追加します。別の語尾を指定しない限り、追加されるのはsです:3 boxes、1 box。

フィルターが変更するのは出力される内容だけで、ビュー内のデータは変更しません。

challenge icon

チャレンジ

簡単

drinks.htmlで:

  • <h1>の下に、4 drinksと表示する<p class="count">を追加します。飲み物が1つの場合は1 drinkと表示します。
  • 各飲み物の<li>内で、名前の後に小数点以下2桁の価格を表示する<span class="price">を追加します: $3.50。

実行を押して、/drinks/を確認します。

自分で試してみよう

<!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 }}
                {% if drink.sold_out %}
                    <span class="sold-out">Sold out</span>
                {% endif %}
            </li>
        {% empty %}
            <li>No drinks today.</li>
        {% endfor %}
    </ul>
</body>
</html>

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

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