Tworzenie wierszy
Część sekcji Modele i panel administracyjny ścieżki Django w Coddy. Lekcja 7 z 23.
Na twojej półce potrzebne są nowe książki, a ty nigdy nie napiszesz SQL — języka, którym posługują się bazy danych. Każdy model ma Book.objects, czyli swój menedżer: jego metody odczytują dane z tabeli i zapisują je w niej. ORM (maper obiektowo-relacyjny) Django zamienia te wywołania na SQL. W tym rozdziale piszesz kod ORM w pliku explore.py. Uruchomienie dodaje dziewięć książek, a następnie uruchamia plik w taki sposób, jak zrobiłoby to polecenie python manage.py shell < explore.py; to, co zostanie wypisane, pojawia się w konsoli.
Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00")create() tworzy wiersz i zapisuje go w jednym kroku; pole, które pominiesz, otrzymuje wartość domyślną. To samo można zrobić w dwóch krokach, wprowadzając po drodze zmianę:
silmarillion = Book(title="The Silmarillion", author="J.R.R. Tolkien", year=1977, price="10.50")
silmarillion.is_read = True
silmarillion.save()Zanim zostanie wywołane save(), obiekt istnieje tylko w Pythonie, a jego id ma wartość None.
Wyzwanie
ŁatwyW pliku explore.py, nad instrukcją print, dodaj dwie książki.
- Za pomocą
create():Project Hail MaryautorstwaAndy Weir, rok2021, cena12.99, science fiction. Zapisz wartość gatunku,scifi, a nie jego etykietę; pobierz ją z klasyGenre. - Utwórz obiekt
Booki wywołajsave():Klara and the SunautorstwaKazuo Ishiguro, rok2021, cena11.50.
Naciśnij „Uruchom”: w konsoli pojawi się 11 books on the shelf.
Spróbuj swoich sił
from books.models import Book
# Dodaj tutaj dwie książki.
print(Book.objects.count(), "books on the shelf")
Wszystkie lekcje w sekcji Modele i panel administracyjny
2Odpytowanie za pomocą ORM
Tworzenie wierszyWszystkie i pobieranieFiltrowanie i wyszukiwanieLiczenie wierszySortowanie wierszyAktualizowanie i usuwaniePoćwicz samodzielnie: Edytor online Django