Ordenar filas
Parte de la sección Modelos y el panel de administración del Journey de Django de Coddy. Lección 11 de 23.
Encontrar el libro más barato, el más reciente o todos los títulos ordenados del más antiguo al más reciente significa ordenar primero los libros. order_by() ordena un QuerySet por un campo, al igual que ordering en Meta lo hace para todos, y un signo menos ordena de mayor a menor. first() devuelve la primera fila, o None si no hay ninguna, así que, a diferencia de get(), nunca genera una excepción:
Book.objects.order_by("-year").first() # <Book: SPQR by Mary Beard>
Book.objects.order_by("-price").values_list("author", flat=True)
# <QuerySet ['Mary Beard', 'Umberto Eco', ...]>values_list("author", flat=True) omite los objetos Book y devuelve los valores en sí: 'Mary Beard'. Sin flat=True, cada valor viene en una tupla de un elemento: ('Mary Beard',).
Desafío
IntermedioReescribe explore.py para imprimir dos líneas:
Cheapest:y el título del libro más barato.Titles by year:y una lista de todos los títulos, empezando por el libro más antiguo. Imprime la lista en sí.
Pulsa «Ejecutar»: la Consola muestra Cheapest: Pride and Prejudice, después Titles by year: ['Pride and Prejudice', 'Emma', 'The Murder of Roger Ackroyd', 'The Hobbit', 'Foundation', 'Dune', 'The Name of the Rose', 'Neuromancer', 'SPQR'].
Pruébalo tú mismo
from books.models import Book
# 1. Más barato: el título del libro más barato
# 2. Títulos por año: todos los títulos, empezando por el libro más antiguo, en una lista
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