Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

W pliku explore.py, nad instrukcją print, dodaj dwie książki.

  • Za pomocą create(): Project Hail Mary autorstwa Andy Weir, rok 2021, cena 12.99, science fiction. Zapisz wartość gatunku, scifi, a nie jego etykietę; pobierz ją z klasy Genre.
  • Utwórz obiekt Book i wywołaj save(): Klara and the Sun autorstwa Kazuo Ishiguro, rok 2021, cena 11.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

Poćwicz samodzielnie: Edytor online Django