Menu
CoddyTech

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)   # 1815

get() 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.

challenge icon

Desafio

Fácil

Reescreva explore.py:

  1. Imprima o título de cada livro, um por linha.
  2. Obtenha Dune e imprima Dune costs e seu preço: Dune costs 9.99.
  3. Procure Ulysses, que não está na estante, e imprima Ulysses is not on the shelf em 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.
quiz iconTeste seus conhecimentos

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