How can I check the size of a collection within a Django template?
I have a list in my Django template. I want to do something only if the size of the list is greater than zero.
I have tried myList|length
and myList|length_is
but they have not been successful.
I've searched all over and don't see any examples. How can I check this?
Solution 1:
See https://docs.djangoproject.com/en/stable/ref/templates/builtins/#if : just use, to reproduce their example:
{% if athlete_list %}
Number of athletes: {{ athlete_list|length }}
{% else %}
No athletes.
{% endif %}
Solution 2:
If you're using a recent Django, changelist 9530 introduced an {% empty %} block, allowing you to write
{% for athlete in athlete_list %}
...
{% empty %}
No athletes
{% endfor %}
Useful when the something that you want to do involves special treatment for lists that might be empty.
Solution 3:
A list is considered to be False
if it has no elements, so you can do something like this:
{% if mylist %}
<p>I have a list!</p>
{% else %}
<p>I don't have a list!</p>
{% endif %}
Solution 4:
If you tried myList|length and myList|length_is and its not getting desired results, then you should use myList.count
Solution 5:
You can try with:
{% if theList.object_list.count > 0 %}
blah, blah...
{% else %}
blah, blah....
{% endif %}