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.
Défi
FacileDans explore.py, ajoute deux livres au-dessus de print.
- Avec
create():Project Hail MarydeAndy Weir, année2021, prix12.99, science-fiction. Enregistre la valeur du genre,scifi, et non son libellé ; récupère-la dans ta classeGenre. - En construisant un
Booket en appelantsave():Klara and the SundeKazuo Ishiguro, année2021, prix11.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
2Interroger avec l’ORM
Créer des lignesAll et GetFiltres et recherchesCompter les lignesTrier les lignesMettre à jour et supprimer3Des pages issues de la base de données
Une liste issue de la base de donnéesUne page pour chaque livreEntraînez-vous par vous-même : Playground Django