@neulwert

Когда выполняются запросы QuerySet'ов?

Объясните пожалуйста эту короткую тему:

Когда выполняются запросы QuerySet’ов
Мы можем добавить сколько угодно фильтров в объект запроса, но непосред-
ственно выполнение SQL-запроса произойдет тогда, когда запустится вычис-
ление QuerySet’а. QuerySet выполняется только в этих случаях:
  • первая итерация по коллекции QuerySet’а;
  • при сериализации или кешировании;
  • при вызове методов repr() или len();
  • когда мы явно вызываем функцию list(), передавая ее аргументом QuerySet;
  • при использовании QuerySet в логических выражениях, таких как bool(),

or, and, if.


Объектом запроса как я понял можно назвать objects.get(). Мне не понятно что такое SQL запросы (это ведь тоже самое что объект запроса в этом абзаце?) и что автор подразумевает под вычисление QuerySet'а и итерация по коллекции QuerySet'а.
  • Вопрос задан
  • 198 просмотров
Решения вопроса 1
dimonchik2013
@dimonchik2013
non progredi est regredi
это тебе

SQL запросы
удивительно, что не в курсе, но, на всякий - это обычный SQL -запрос

а то, о чем спрашиваешь, называется ORM

у ORM много достоинств и всего два недостатка:
1) ORM медленнее на 20-500% чем RAW SQL
2) ORM ведет к деградации, от
Мне не понятно что такое SQL запросы

до неумения писать правильный SQL

про правильный SQL обоюдно - ORM мождет транслировать запрос лучше, чем если бы его писал новичок, но только в немногих случаях

вычисление QuerySet'а
происходит когда таки нужно сходить в базу, выбрать данные и что-то с ними проделать, вот что-то с ними проделать и делается путем
итерация по коллекции QuerySet'а


больше практики - и сам все увидишь
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы