Метод last
Метод last применяется к QuerySet и возвращает последний
объект из набора записей. Если QuerySet не отсортирован,
порядок будет соответствовать порядку в базе данных
(обычно по первичному ключу). Метод полезен для получения
самой свежей записи или последнего элемента в выборке.
При отсутствии объектов возвращает None.
Синтаксис
Model.objects.last()
Пример
Получим последнюю добавленную статью в базе данных:
from myapp.models import Article
last_article = Article.objects.last()
if last_article:
print(last_article.title)
Результат выполнения кода:
"Последняя статья"
Пример
Получим последнюю статью, опубликованную в текущем году,
используя цепочку методов с filter и last:
from 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)
Результат выполнения кода:
"Последняя статья 2026 года"
Пример
Используем метод last с явной сортировкой
для получения объекта с максимальным значением
по заданному полю:
from myapp.models import Article
# Получаем статью с самой высокой оценкой
best_article = Article.objects.order_by('-rating').last()
if best_article:
print(best_article.title, best_article.rating)
Результат выполнения кода:
"Статья с низким рейтингом" 1
Пример
Обработка случая, когда QuerySet пуст:
from 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")
Результат выполнения кода:
"No draft articles found"