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

django django-templates

97435 观看

6回复

16703 作者的声誉

我的Django模板中有一个列表。我想只在列表大小大于零时才做某事。我怎么检查这个?

我试过myList | length和myList | length_is但是没有成功。我到处搜索过,没看到任何例子。

作者: MrDatabase 的来源 发布者: 2009 年 5 月 23 日

回应 (6)


20

290803 作者的声誉

如果列表False没有元素,则认为是列表,因此您可以执行以下操作:

{% if mylist %}
    <p>I have a list!</p>
{% else %}
    <p>I don't have a list!</p>
{% endif %}
作者: mipadi 发布者: 23.05.2009 05:52

221

630038 作者的声誉

决定

请参阅https://docs.djangoproject.com/en/stable/ref/templates/builtins/#if:使用,重现他们的示例:

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% else %}
    No athletes.
{% endif %}
作者: Alex Martelli 发布者: 23.05.2009 05:53

84

16501 作者的声誉

如果您使用的是最近的Django,则更改列表9530引入了一个{%empty%}块,允许您编写

{% for athlete in athlete_list %}
  ...
{% empty %}
  No athletes
{% endfor %}

当您想要做的事情涉及迭代非空列表时很有用。

作者: Dave W. Smith 发布者: 24.05.2009 12:35

11

756 作者的声誉

如果您尝试了myList | length和myList | length_is并且没有获得所需的结果,那么您应该使用 myList.count

作者: Nilesh Tighare 发布者: 15.04.2011 07:31

3

31 作者的声誉

您可以尝试:

{% if theList.object_list.count > 0 %}
    blah, blah...
{% else %}
    blah, blah....
{% endif %} 
作者: Atarx 发布者: 02.04.2018 06:28

0

333 作者的声誉

Collection.count没有括号

{% if request.user.is_authenticated %}
{{wishlists.count}}
{% else %}0{% endif %}
作者: lilhamad 发布者: 11.03.2019 12:45
32x32