Метод first

Метод first применяется к QuerySet и возвращает первый объект из набора записей, отсортированный по первичному ключу или указанной сортировке. Если QuerySet пуст, метод возвращает None. Это удобный способ быстро получить одну запись без необходимости использовать индексацию или проверять наличие элементов.

Синтаксис

pythonModel.objects.first()

Метод может быть вызван как на менеджере модели, так и на любом существующем QuerySet:

python# На менеджере модели
first_article = Article.objects.first()

# На отфильтрованном QuerySet
first_published = Article.objects.filter(status='published').first()

Пример

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

pythonfrom myapp.models import Article

first_article = Article.objects.first()
if first_article:
  print(first_article.title)
else:
  print("No articles found")

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

python"First article title"

Пример

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

pythonfrom myapp.models import Article

first_published = Article.objects.filter(
  status='published'
).order_by('-created_at').first()

if first_published:
  print(f"Latest published: {first_published.title}")

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

python"Latest published: Newest article"

Пример

Используем метод first в паре с values для получения первого словаря из QuerySet:

pythonfrom myapp.models import Article

first_article_data = Article.objects.values(
  'title', 'status', 'created_at'
).first()

if first_article_data:
  print(first_article_data)

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

python{'title': 'First article', 'status': 'draft', 'created_at': datetime.datetime(2025, 1, 1, 12, 0)}

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

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