Menu
CoddyTech

Wszystkie i pobieranie

Część sekcji Modele i panel administracyjny ścieżki Django w Coddy. Lekcja 8 z 23.

Zanim strona będzie mogła wyświetlić książkę, Twój kod musi ją odczytać. Book.objects.all() zwraca QuerySet, obiekt przypominający listę, po którym możesz iterować; każdy element to Book, którego pola są atrybutami. get() pobiera dokładnie jeden wiersz:

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

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

get() oczekuje jednego dopasowania. Brak dopasowania powoduje zgłoszenie wyjątku Book.DoesNotExist, kilka dopasowań — wyjątku Book.MultipleObjectsReturned, a obsługujesz je tak jak każdy inny wyjątek. Dwie książki w tym przypadku są autorstwa Jane Austen:

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

Jeśli wyjątek nie zostanie przechwycony, skrypt zatrzyma się w tym wierszu.

challenge icon

Wyzwanie

Łatwy

Przepisz explore.py:

  1. Wyświetl tytuł każdej książki, po jednym w wierszu.
  2. Pobierz Dune i wyświetl Dune costs oraz jej cenę: Dune costs 9.99.
  3. Wyszukaj Ulysses, którego nie ma na półce, i wyświetl Ulysses is not on the shelf zamiast powodować awarię.

Naciśnij Run. Konsola wyświetli dziewięć tytułów, a następnie dwa zdania.

Spróbuj swoich sił

from books.models import Book

# 1. Wypisz tytuł każdej książki, po jednym w wierszu.

# 2. Pobierz Dune i wypisz jej cenę.

# 3. Wyszukaj Ulysses.
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Modele i panel administracyjny

Poćwicz samodzielnie: Edytor online Django