Menu
CoddyTech

Compter les lignes

Fait partie de la section Modèles et interface d’administration du Journey Django de Coddy. Leçon 10 sur 23.

Pour savoir combien de livres de science-fiction vous possédez, vous pourriez les charger tous et les compter en Python. La base de données compte plus vite. Chacune de ces instructions exécute une petite requête et renvoie une seule réponse :

Book.objects.filter(is_read=True).count()    # 1
Book.objects.filter(price__gt=20).exists()   # False
len(Book.objects.all())                      # 9, après avoir chargé les 9 lignes

count() renvoie le nombre de lignes correspondantes. exists() renvoie True lorsqu’au moins une ligne correspond, et False lorsqu’aucune ne correspond. Ces deux méthodes s’ajoutent à la fin d’un QuerySet, après filter() ou exclude(). len() donne le même nombre que count(), mais seulement après le chargement de toutes les lignes dans Python, ce qui est lent pour une grande table.

challenge icon

Défi

Facile

Réécris explore.py pour afficher deux lignes :

  1. Science fiction: et le nombre de livres de science-fiction.
  2. Any Tolkien: et si un livre de J.R.R. Tolkien se trouve sur l’étagère.

Appuie sur « Jouer » : la console affiche Science fiction: 3 et Any Tolkien: True.

Essayez vous-même

from books.models import Book

# 1. Science-fiction : combien y a-t-il de livres de science-fiction ?

# 2. Un livre de Tolkien : y a-t-il un livre de J.R.R. Tolkien sur l’étagère ?
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Modèles et interface d’administration

Entraînez-vous par vous-même : Playground Django