Ordenando registros
Parte da seção Models e o Admin do Journey de Django da Coddy. Lição 11 de 23.
O livro mais barato, o mais novo, todos os títulos do mais antigo para o mais recente: cada um é uma questão de ordenação. order_by() ordena um QuerySet por um campo, assim como ordering em Meta faz isso para todos eles, e um sinal de menos ordena do maior para o menor. first() retorna a primeira linha, ou None quando não há nenhuma, então, ao contrário de get(), nunca gera uma exceção:
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() ignora os objetos Book e retorna os valores de um campo. Sem flat=True, cada valor vem em uma tupla de um único item, como ('Mary Beard',).
Desafio
MédioReescreva explore.py para imprimir duas linhas:
Cheapest:e o título do livro mais barato.Titles by year:e uma lista de todos os títulos, começando pelo livro mais antigo.
Pressione Run. O Console exibe Cheapest: Pride and Prejudice e Titles by year: ['Pride and Prejudice', 'Emma', ...].
Experimente você mesmo
from books.models import Book
# 1. Mais barato: o título do livro mais barato
# 2. Títulos por ano: todos os títulos, começando pelo livro mais antigo, em uma lista
Todas as lições de Models e o Admin
2Consultas com o ORM
Criando registrosAll e GetFiltros e consultasContando registrosOrdenando registrosAtualizar e excluirPratique por conta própria: Playground de Django