Menu
CoddyTech

All et Get

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

Avant qu’une page puisse afficher un livre, votre code doit le lire. Book.objects.all() renvoie un QuerySet, un objet semblable à une liste que vous pouvez parcourir ; chaque élément est un Book dont les champs sont des attributs. get() récupère exactement une ligne :

for book in Book.objects.all():
    print(book.author, book.year)

emma = Book.objects.get(title="Emma")
print(emma.year)   # 1815

get() attend une seule correspondance. En l’absence de correspondance, une exception Book.DoesNotExist est levée ; s’il y en a plusieurs, une exception Book.MultipleObjectsReturned est levée. Vous les interceptez comme n’importe quelle exception. Ici, deux livres sont de Jane Austen :

try:
    Book.objects.get(author="Jane Austen")
except Book.MultipleObjectsReturned:
    print("More than one")

Si elle n’est pas interceptée, l’exception arrête le script à cette ligne.

challenge icon

Défi

Facile

Réécris explore.py :

  1. Affiche le titre de chaque livre, un par ligne.
  2. Récupère Dune et affiche Dune costs ainsi que son prix : Dune costs 9.99.
  3. Recherche Ulysses, qui n’est pas sur l’étagère, et affiche Ulysses is not on the shelf au lieu de planter.

Appuie sur Run. La console affiche les neuf titres, puis les deux phrases.

Essayez vous-même

from books.models import Book

# 1. Affiche le titre de chaque livre, un par ligne.

# 2. Récupère Dune et affiche son prix.

# 3. Cherche Ulysses.
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