All y Get
Parte de la sección Modelos y el panel de administración del Journey de Django de Coddy. Lección 8 de 23.
Antes de que una página pueda mostrar un libro, tu código tiene que volver a leerlo. Book.objects.all() devuelve un QuerySet, un objeto similar a una lista por el que puedes iterar; cada elemento es un Book con sus campos como atributos. get() obtiene exactamente una fila:
for book in Book.objects.all():
print(book.author, book.year)
emma = Book.objects.get(title="Emma")
print(emma.year) # 1815get() espera una coincidencia. Si no hay ninguna, se produce Book.DoesNotExist; si hay varias, se produce Book.MultipleObjectsReturned, y puedes capturarlas como cualquier otra excepción. Dos libros de aquí son de Jane Austen:
try:
Book.objects.get(author="Jane Austen")
except Book.MultipleObjectsReturned:
print("More than one")Si no se captura, la excepción detiene el script en esa línea.
Desafío
FácilReescribe explore.py:
- Imprime el título de cada libro, uno por línea.
- Obtén
Dunee imprimeDune costsy su precio:Dune costs 9.99. - Busca
Ulysses, que no está en la estantería, e imprimeUlysses is not on the shelfen lugar de provocar un error.
Pulsa «Ejecutar»: la consola muestra los nueve títulos y, después, las dos frases.
Pruébalo tú mismo
from books.models import Book
# 1. Imprime el título de cada libro, uno por línea.
# 2. Obtén Dune e imprime su precio.
# 3. Busca Ulysses.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Modelos y el panel de administración
2Consultas con el ORM
Crear filasAll y GetFiltros y búsquedasContar filasOrdenar filasActualizar y eliminar3Páginas desde la base de datos
Una lista desde la base de datosUna página para cada libroPractica por tu cuenta: Playground de Django