Sobes.tech
Junior — Middle
100

Mely QuerySet funkciók indítják el az SQL-lekérdezések végrehajtását az adatbázisban?

Válasz az MI-től

sobes.tech MI

В 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)