Вопрос про QuerySet. Сколько раз выполняется запрос в БД?
query1 = Model.objects.all()
query2 = query1.exclude(id=17)
query3 = query1.distinct()
Сколько раз выполнится запрос в базу данных?
query1 = Model.objects.all()
query2 = query1.exclude(id=17)
query3 = query1.distinct()
Сколько раз выполнится запрос в базу данных?
Могу ошибаться, так как именно с django и его orm я не работал.
Но, кажется, в данном куске кода запросов к базе вообще не выполнится.
В документации читаю:
Внутренне QuerySet может быть создан, отфильтрован, нарезан и, как правило, передан без фактического запроса к базе данных. На самом деле никаких действий с базой данных не происходит, пока вы не сделаете что-то для оценки набора запросов.
Так как, согласно той же документации, все упомянутые в вашем коде методы возвращают новый QuerySet и никак не обращаются к результату его выполнения, я делаю вывод, что реального запроса к базе не будет произведено.
Запрос будет выполнен, только когда вы начнёте как-то работать с результатом, например, сделав list(query3)