Метод last

Метод last применяется к QuerySet и возвращает последний объект из набора записей. Если QuerySet не отсортирован, порядок будет соответствовать порядку в базе данных (обычно по первичному ключу). Метод полезен для получения самой свежей записи или последнего элемента в выборке. При отсутствии объектов возвращает None.

Синтаксис

pythonModel.objects.last()

Пример

Получим последнюю добавленную статью в базе данных:

pythonfrom myapp.models import Article

last_article = Article.objects.last()
if last_article:
  print(last_article.title)

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

python"Последняя статья"

Пример

Получим последнюю статью, опубликованную в текущем году, используя цепочку методов с filter и last:

pythonfrom myapp.models import Article
from datetime import date

current_year = date.today().year
last_published = Article.objects.filter(
  status='published',
  published_date__year=current_year
).last()

if last_published:
  print(last_published.title)

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

python"Последняя статья 2026 года"

Пример

Используем метод last с явной сортировкой для получения объекта с максимальным значением по заданному полю:

pythonfrom myapp.models import Article

# Получаем статью с самой высокой оценкой
best_article = Article.objects.order_by('-rating').last()
if best_article:
  print(best_article.title, best_article.rating)

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

python"Статья с низким рейтингом" 1

Пример

Обработка случая, когда QuerySet пуст:

pythonfrom myapp.models import Article

last_draft = Article.objects.filter(status='draft').last()
if last_draft is not None:
  print(last_draft.title)
else:
  print("No draft articles found")

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

python"No draft articles found"

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

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