Метод earliest

Метод earliest применяется к QuerySet и возвращает объект модели, который является самым ранним по значению указанного поля. В качестве аргумента метод принимает имя поля (или несколько имен), по которому будет выполняться сортировка по возрастанию. Если в QuerySet нет записей, метод выбрасывает исключение DoesNotExist. Метод полезен для получения самой старой записи в таблице, например, первой созданной статьи или самого раннего заказа.

Синтаксис

pythonModel.objects.earliest(*fields)

Пример

Давайте получим самую раннюю статью по дате создания:

pythonfrom myapp.models import Article

earliest_article = Article.objects.earliest('created_at')
print(earliest_article.title)

Результат выполнения кода:

python"Первая статья"

Пример

Получим самого раннего пользователя по дате регистрации, используя несколько полей для сортировки:

pythonfrom myapp.models import User

earliest_user = User.objects.earliest('date_joined', 'id')
print(earliest_user.username)

Результат выполнения кода:

python"admin"

Пример

Метод earliest можно комбинировать с фильтрацией для получения самой ранней записи среди отфильтрованных:

pythonfrom myapp.models import Order
from datetime import date

earliest_order = Order.objects.filter(
    status='completed'
).earliest('created_at')
print(earliest_order.id)

Результат выполнения кода:

python"101"

Смотрите также

  • метод latest,
    который получает самую позднюю запись из QuerySet
  • метод first,
    который возвращает первый объект из QuerySet
  • метод last,
    который возвращает последний объект из QuerySet
  • метод order_by,
    который сортирует QuerySet по указанным полям