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 podobny do listy, 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 wyjątek Book.DoesNotExist, kilka dopasowań powoduje wyjątek Book.MultipleObjectsReturned, a te wyjątki przechwytuje się tak jak każdy inny wyjątek. Dwie książki tutaj 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. Wypisz tytuł każdej książki, po jednym w każdym wierszu.
  2. Pobierz Dune i wypisz Dune costs oraz jej cenę: Dune costs 9.99.
  3. Wyszukaj Ulysses, którego nie ma na półce, i wypisz Ulysses is not on the shelf zamiast powodować awarię.

Naciśnij „Uruchom”: 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