Sobes.tech
Назад к вопросам
Junior — Middle
66

Какие функции QuerySet инициируют выполнение SQL-запросов к базе данных?

Ответ от нейросети

sobes.tech AI

В Django QuerySet ленивый — SQL-запрос к базе данных выполняется только тогда, когда данные действительно нужны. Функции и операции, которые инициируют выполнение запроса, включают:

  • Итерация по QuerySet (например, цикл for)
  • Вызов методов, возвращающих список или отдельный объект: list(), get(), first(), last()
  • Методы агрегации: count(), exists(), aggregate()
  • Преобразование в другие структуры: values(), values_list()
  • Принудительное кэширование: len()

Пример:

qs = MyModel.objects.filter(active=True)  # запрос еще не выполнен
count = qs.count()  # здесь выполняется SQL-запрос COUNT
for obj in qs:  # здесь выполняется SELECT
    print(obj)