All e Get
Parte da seção Models e o Admin do Journey de Django da Coddy. Lição 8 de 23.
Antes que uma página possa exibir um livro, seu código precisa buscá-lo. Book.objects.all() retorna um QuerySet, um objeto semelhante a uma lista que você pode percorrer; cada item é um Book com seus campos como atributos. get() busca exatamente uma linha:
for book in Book.objects.all():
print(book.author, book.year)
emma = Book.objects.get(title="Emma")
print(emma.year) # 1815get() espera uma correspondência. Nenhuma correspondência gera Book.DoesNotExist, várias geram Book.MultipleObjectsReturned, e você as captura como qualquer exceção. Dois livros aqui são de Jane Austen:
try:
Book.objects.get(author="Jane Austen")
except Book.MultipleObjectsReturned:
print("More than one")Se não for capturada, a exceção interrompe o script nessa linha.
Desafio
FácilReescreva explore.py:
- Imprima o título de cada livro, um por linha.
- Obtenha
Dunee imprimaDune costse seu preço:Dune costs 9.99. - Procure
Ulysses, que não está na estante, e imprimaUlysses is not on the shelfem vez de causar um erro.
Pressione Run. O Console lista os nove títulos e, em seguida, as duas frases.
Experimente você mesmo
from books.models import Book
# 1. Imprima o título de cada livro, um por linha.
# 2. Busque Dune e imprima seu preço.
# 3. Procure Ulysses.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Models e o Admin
Pratique por conta própria: Playground de Django