Как я могу проверить размер коллекции в шаблоне Django? - PullRequest
122 голосов
/ 23 мая 2009

У меня есть список в моем шаблоне Django. Я хочу сделать что-то, только если размер списка больше нуля.

Я пробовал myList|length и myList|length_is, но они не увенчались успехом.

Я искал по всему и не вижу примеров. Как я могу это проверить?

Ответы [ 6 ]

229 голосов
/ 23 мая 2009

См. https://docs.djangoproject.com/en/stable/ref/templates/builtins/#if: просто используйте, чтобы воспроизвести их пример:

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% else %}
    No athletes.
{% endif %}
86 голосов
/ 24 мая 2009

Если вы используете недавний Django, список изменений 9530 представил блок {% empty%}, позволяющий писать

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

Полезно, когда вы хотите выполнить итерации по непустому списку.

20 голосов
/ 23 мая 2009

Список считается False, если в нем нет элементов, поэтому вы можете сделать что-то вроде этого:

{% if mylist %}
    <p>I have a list!</p>
{% else %}
    <p>I don't have a list!</p>
{% endif %}
12 голосов
/ 15 апреля 2011

Если вы пробовали myList | length и myList | length_is и не получили желаемых результатов, вам следует использовать myList.count

3 голосов
/ 02 апреля 2018

Вы можете попробовать:

{% if theList.object_list.count > 0 %}
    blah, blah...
{% else %}
    blah, blah....
{% endif %} 
0 голосов
/ 11 марта 2019

Collection.count без кронштейна

{% if request.user.is_authenticated %}
{{wishlists.count}}
{% else %}0{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...