如何检查Django模板中集合的大小?


147

我的Django模板中有一个列表。仅在列表大小大于零时,我才想做某事。

我已经尝试过myList|lengthmyList|length_is但是他们没有成功。

我到处搜索,没有看到任何示例。我该如何检查?

Answers:


279

请参阅https://docs.djangoproject.com/zh-CN/stable/ref/templates/builtins/#if:仅用于复制其示例:

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

| length我总是对Flask中的jinja模板和django感到困惑。感谢您的信息。真的很有帮助。
Doogle '18

7
length过滤器似乎也可以在条件块中工作。例如{% if athlete_list|length > 1 %}...{% endif %}
Thismatters


20

如果列表False不包含任何元素,则将其视为存在,因此您可以执行以下操作:

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

13

如果您尝试使用myList | length和myList | length_is并没有得到期望的结果,则应使用 myList.count


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>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.