Метод earliest
Метод earliest применяется к QuerySet и возвращает
объект модели, который является самым ранним по значению
указанного поля. В качестве аргумента метод принимает
имя поля (или несколько имен), по которому будет выполняться
сортировка по возрастанию. Если в QuerySet нет записей,
метод выбрасывает исключение DoesNotExist.
Метод полезен для получения самой старой записи в таблице,
например, первой созданной статьи или самого раннего заказа.
Синтаксис
Model.objects.earliest(*fields)
Пример
Давайте получим самую раннюю статью по дате создания:
from myapp.models import Article
earliest_article = Article.objects.earliest('created_at')
print(earliest_article.title)
Результат выполнения кода:
"Первая статья"
Пример
Получим самого раннего пользователя по дате регистрации, используя несколько полей для сортировки:
from myapp.models import User
earliest_user = User.objects.earliest('date_joined', 'id')
print(earliest_user.username)
Результат выполнения кода:
"admin"
Пример
Метод earliest можно комбинировать с фильтрацией
для получения самой ранней записи среди отфильтрованных:
from myapp.models import Order
from datetime import date
earliest_order = Order.objects.filter(
status='completed'
).earliest('created_at')
print(earliest_order.id)
Результат выполнения кода:
"101"