Встречается на собеседованиях • сегодня

Какие методы QuerySet отправляют запросы к БД

QuerySet в Django ленив — запросы к БД выполняются только при явном вызове методов, требующих данных. Основные методы, вызывающие запрос:

1. Итерация

python
for obj in MyModel.objects.all():  # Запрос выполняется здесь
    print(obj)

2. Срезы с шагом

python
qs = MyModel.objects.all()[5:10]  # Ленивый (не выполняется)
qs = MyModel.objects.all()[5:10:2]  # Выполняется (шаг)

3. Методы оценки

  • list(qs)
  • bool(qs) (если QuerySet пуст)
  • len(qs) (если не использовать count())
  • qs.exists()

4. Методы агрегации

  • qs.count()
  • qs.aggregate()
  • qs.get(), qs.first(), qs.last()

5. Сериализация

  • repr(qs) (в консоли Django)
  • str(qs.query)

Пример:

python
qs = MyModel.objects.filter(name__startswith='A')  # Нет запроса
print(qs)  # Запрос выполнится
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы