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.
El libro más barato, el más reciente, todos los títulos del más antiguo al más nuevo: cada uno es una pregunta sobre el orden. order_by() ordena un QuerySet por un campo, igual que ordering en Meta lo hace para todos ellos, 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() omite los objetos Book y devuelve los valores de un campo. Sin flat=True, cada valor viene en una tupla de un elemento, como ('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, con el libro más antiguo primero.
Pulsa Run. La consola muestra Cheapest: Pride and Prejudice y Titles by year: ['Pride and Prejudice', 'Emma', ...].
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