Menu
CoddyTech

Créer des lignes

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

Votre étagère a besoin de nouveaux livres, et vous n’écrirez jamais de SQL, le langage parlé par les bases de données. Chaque modèle possède Book.objects, son gestionnaire : ses méthodes lisent et écrivent dans la table. L’ORM de Django (mappeur objet-relationnel) transforme ces appels en SQL. Dans ce chapitre, vous écrivez du code ORM dans explore.py. Le bouton « Exécuter » ajoute neuf livres, puis exécute le fichier comme le ferait python manage.py shell < explore.py, et ce qu’il affiche apparaît dans la console.

Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00")

create() crée une ligne et l’enregistre en une seule étape ; un champ que vous omettez prend sa valeur par défaut. Voici la même opération en deux étapes, avec une modification entre les deux :

silmarillion = Book(title="The Silmarillion", author="J.R.R. Tolkien", year=1977, price="10.50")
silmarillion.is_read = True
silmarillion.save()

Tant que save() n’a pas été exécutée, l’objet existe uniquement en Python et son id vaut None.

challenge icon

Défi

Facile

Dans explore.py, ajoute deux livres au-dessus de print.

  • Avec create() : Project Hail Mary de Andy Weir, année 2021, prix 12.99, science-fiction. Enregistre la valeur du genre, scifi, et non son libellé ; récupère-la dans ta classe Genre.
  • En construisant un Book et en appelant save() : Klara and the Sun de Kazuo Ishiguro, année 2021, prix 11.50.

Appuie sur « Jouer » : la console affiche 11 books on the shelf.

Essayez vous-même

from books.models import Book

# Ajoutez les deux livres ici.


print(Book.objects.count(), "books on the shelf")

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

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