Метод only

Метод only применяется к QuerySet и возвращает новый QuerySet, содержащий те же объекты, но с загруженными только указанными полями. Остальные поля будут отложенно загружены при обращении к ним. Это полезно, когда вам не нужны все поля модели, а только определенный набор. Метод принимает имена полей в качестве аргументов и может быть вызван цепочкой для уточнения списка загружаемых полей.

Синтаксис

pythonModel.objects.only(*fields)

Пример

Давайте загрузим только поля 'title' и 'created_at' из модели Article:

pythonfrom myapp.models import Article

articles = Article.objects.only('title', 'created_at')
for article in articles:
  print(f"Title: {article.title}, Created: {article.created_at}")

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

python"Title: First article, Created: 2026-09-01 10:00:00"
"Title: Second article, Created: 2026-09-02 11:30:00"

Пример

Давайте загрузим только поле 'title' и затем попробуем обратиться к незагруженному полю 'content':

pythonfrom myapp.models import Article

article = Article.objects.only('title').first()
print(f"Title: {article.title}")
print(f"Content: {article.content}") # This will trigger a lazy load

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

python"Title: First article"
"Content: Full content of the article..."

Пример

Давайте используем метод only вместе с другими методами QuerySet для более сложной выборки:

pythonfrom myapp.models import Article
from datetime import date

articles = Article.objects.filter(
  status='published',
  created_at__date__gte=date(2026, 1, 1)
).only('title', 'created_at').order_by('created_at')
for article in articles:
  print(f"{article.title} - {article.created_at}")

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

python"New article 1 - 2026-01-15 09:00:00"
"New article 2 - 2026-01-20 14:30:00"

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

  • метод defer,
    который исключает указанные поля из загрузки
  • метод values,
    который возвращает QuerySet словарей вместо объектов
  • метод values_list,
    который возвращает QuerySet кортежей с данными полей
  • метод select_related,
    который загружает связанные объекты в одном запросе