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?
This question is related to
django
django-templates
You can try with:
{% if theList.object_list.count > 0 %}
blah, blah...
{% else %}
blah, blah....
{% endif %}
If you tried myList|length and myList|length_is and its not getting desired results, then you should use myList.count
I need the collection length to decide whether I should render table <thead></thead>
but don't know why @Django 2.1.7 the chosen answer will fail(empty) my forloop
afterward.
I got to use {% if forloop.first %} {% endif %}
to overcome:
<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>
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.
Collection.count no bracket
{% if request.user.is_authenticated %}
{{wishlists.count}}
{% else %}0{% endif %}
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 %}
Source: Stackoverflow.com