Métodos latest, earliest, first e last - Django
Métodos latest e earliest
O método latest()
alatest()
O método earliest()
aearliest()
Ambos os métodos aceitam como argumento um ou mais campos que determinam a base da ordenação e seleção do registro:
from .models import Person
# Seleciona o registro com as alterações mais recentes no campo "id"
latest_person = Person.objects.latest("id")
print(f"{latest_person.name} - {latest_person.age}")
# Seleciona o registro com as alterações mais antigas no campo "id"
earliest_person = Person.objects.earliest("id")
print(f"{earliest_person.name} - {earliest_person.age}")
É possível especificar múltiplos campos:
# Seleciona o registro com as alterações mais recentes no campo "age"
# e as alterações mais antigas no campo "name"
latest_person = Person.objects.latest("age", "-name")
print(f"{latest_person.name} - {latest_person.age}")
Quando um campo é precedido por um sinal de menos, a ordem de busca é invertida. Assim, para o método latest
earliest
Se nenhum registro for encontrado (por exemplo, em um conjunto vazio), ambos os métodos lançam a exceção DoesNotExist
Métodos first e last
O método first()
afirst()
last()
alast()
from .models import Person
# Seleciona o primeiro registro do conjunto
first_person = Person.objects.first()
print(f"{first_person.name} - {first_person.age}")
# Seleciona o último registro do conjunto
last_person = Person.objects.last()
print(f"{last_person.name} - {last_person.age}")
# Seleciona o primeiro registro do conjunto ordenado por idade
first_person = Person.objects.order_by("age").first()
print(f"{first_person.name} - {first_person.age}")
Diferentemente dos métodos latest
earliest
first
last