Menu
CoddyTech

Tutti e Ottieni

Fa parte della sezione Modelli e pannello di amministrazione del percorso Django di Coddy. Lezione 8 di 23.

Prima che una pagina possa mostrare un libro, il tuo codice deve leggerlo. Book.objects.all() restituisce un QuerySet, un oggetto simile a una lista su cui puoi eseguire un ciclo; ogni elemento è un Book con i suoi campi come attributi. get() recupera esattamente una riga:

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

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

get() si aspetta una corrispondenza. Se non trova corrispondenze solleva Book.DoesNotExist, se ne trova diverse solleva Book.MultipleObjectsReturned; puoi intercettarle come qualsiasi eccezione. Due dei libri qui sono di Jane Austen:

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

Se non viene intercettata, l'eccezione interrompe lo script su quella riga.

challenge icon

Sfida

Facile

Riscrivi explore.py:

  1. Stampa il titolo di ogni libro, uno per riga.
  2. Recupera Dune e stampa Dune costs e il suo prezzo: Dune costs 9.99.
  3. Cerca Ulysses, che non è sullo scaffale, e stampa Ulysses is not on the shelf invece di andare in crash.

Premi Run. La Console elenca i nove titoli, poi le due frasi.

Provalo tu

from books.models import Book

# 1. Stampa il titolo di ogni libro, uno per riga.

# 2. Recupera Dune e stampa il suo prezzo.

# 3. Cerca Ulysses.
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Modelli e pannello di amministrazione

Esercitati da solo: Playground Django