209 votes

Comment puis-je vérifier la taille d'une collection dans un modèle Django ?

J'ai une liste dans mon modèle Django. Je ne veux faire quelque chose que si la taille de la liste est supérieure à zéro.

J'ai essayé myList|length et myList|length_is mais ils n'ont pas réussi.

J'ai cherché partout et je ne vois aucun exemple. Comment puis-je vérifier cela ?

384voto

Alex Martelli Points 330805

Voir https://docs.djangoproject.com/en/stable/ref/templates/builtins/#if : il suffit d'utiliser, pour reproduire leur exemple :

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

134voto

Dave W. Smith Points 9470

Si vous utilisez un Django récent, changelist 9530 a introduit un bloc {% empty %}, vous permettant d'écrire

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

Utile lorsque la chose que vous voulez faire implique un traitement spécial pour les listes qui peuvent être vides.

28voto

mipadi Points 135410

Une liste est considérée comme False si elle n'a pas d'éléments, de sorte que vous pouvez faire quelque chose comme ceci :

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

12voto

Nilesh Tighare Points 340

Si vous avez essayé myList|length et myList|length_is et que vous n'obtenez pas les résultats souhaités, vous devez utiliser myList.count

8voto

Atarx Points 81

Vous pouvez essayer avec :

{% if theList.object_list.count > 0 %}
    blah, blah...
{% else %}
    blah, blah....
{% endif %} 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X