Встречается на собеседованиях • сегодня
Как работает lazy loading в Django
Lazy loading в Django — это механизм отложенной загрузки данных, который позволяет избежать лишних запросов к БД до момента реального использования объекта.
Основные примеры:
- Lazy QuerySet — запрос не выполняется до итерации, среза или явного вызова
list()/exists():
python
users = User.objects.all() # Запрос не выполнен
print(users[0]) # Только сейчас Django делает SQL-запрос- Отношения (ForeignKey, OneToOne, ManyToMany) — загружаются только при обращении:
python
user = User.objects.get(id=1) # Запрос только для User
print(user.profile.bio) # Дополнительный запрос для ProfileКак избежать N+1 проблемы:
Используйте select_related (для ForeignKey/OneToOne) и prefetch_related (для ManyToMany):
python
User.objects.select_related('profile').get(id=1) # Загрузит User и Profile одним запросомВажно: Lazy loading экономит ресурсы, но требует аккуратного обращения, чтобы не генерировать лишние запросы.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы