РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
80 of 818 menu

Метод only

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

Синтаксис

Model.objects.only(*fields)

Пример

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

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

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

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

Пример

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

from 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

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

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

Пример

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

from 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}")

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

"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,
    который загружает связанные объекты в одном запросе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить