PRO

Что такое QuerySet? Как работает ленивая загрузка?

QuerySet — это объект Django ORM, который представляет набор объектов из базы данных и описывает будущий запрос. Он вычисляется лениво: SQL-запрос обычно не выполняется при создании QuerySet, а запускается только тогда, когда реально нужны данные.
Подробный ответ

Что такое QuerySet

QuerySet — это набор объектов модели и одновременно описание SQL-запроса к базе данных. Например, Article.objects.all() возвращает QuerySet со всеми статьями, но не список Python-объектов сразу.

articles = Article.objects.filter(is_published=True)

Что означает ленивая загрузка

Django не выполняет запрос к базе в момент создания QuerySet. Он откладывает запрос, пока данные не понадобятся: например, при обходе QuerySet в цикле, преобразовании в список, вызове len(), проверке в условии или выводе элементов.

articles = Article.objects.filter(is_published=True)

for article in articles:
    print(article.title)

Зачем это нужно

Ленивая загрузка позволяет строить запрос по частям и не обращаться к базе раньше времени. Например, можно сначала создать QuerySet, затем добавить фильтрацию и сортировку, а SQL выполнится только при получении результата.

Как ответить на собеседовании

QuerySet — это объект Django ORM, который представляет набор записей и будущий запрос к базе. Он ленивый: SQL обычно выполняется только тогда, когда я начинаю использовать данные, например итерируюсь по QuerySet.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге