Djangoテンプレート内のコレクションのサイズを確認するにはどうすればよいですか?


147

Djangoテンプレートにリストがあります。リストのサイズがゼロより大きい場合にのみ、何かをしたいのですが。

私が試してみましたmyList|lengthし、myList|length_is彼らは成功していません。

あちこち検索しましたが、例はありません。これを確認するにはどうすればよいですか?

回答:


279

https://docs.djangoproject.com/en/stable/ref/templates/builtins/#ifを参照してください:単に使用して、例を再現してください

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% else %}
    No athletes.
{% endif %}

|長さ私は常に、Flaskのjinjaテンプレートとdjangoと混同されます。情報のおかげで。本当に役に立ちました。
Doogle 2018

7
lengthフィルタはまた、条件付きブロックで動作しているようです。例{% if athlete_list|length > 1 %}...{% endif %}
Thismatters 2018


20

リストはFalse要素がない場合と見なされるため、次のようなことができます。

{% if mylist %}
    <p>I have a list!</p>
{% else %}
    <p>I don't have a list!</p>
{% endif %}


6

あなたは試すことができます:

{% if theList.object_list.count > 0 %}
    blah, blah...
{% else %}
    blah, blah....
{% endif %} 


1

テーブルをレンダリングするかどうかを決定するには、コレクションの長さが必要です <thead></thead>

しかし、@ Django 2.1.7選択した回答がforloop後で失敗する(空になる)理由がわかりません。

私は{% if forloop.first %} {% endif %}克服するために使用する必要がありました:

<table>
    {% for record in service_list %}
        {% if forloop.first %}
            <thead>
            <tr>
                <th>日期</th>
            </tr>
            </thead>
        {% endif %}
        <tbody>
        <tr>
            <td>{{ record.date }}</td>
        </tr>
    {% endfor %}
    </tbody>
</table>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.