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 que puedes recorrer en un bucle; 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 coincidencias, 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 que el programa se bloquee.
Pulsa Run. 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