Самый простой возможный способ получить «сырой» SQL для любого запроса - просто print
его (фактически, преобразовать в str
).
Но , это не такработает для count()
запросов, потому что count()
- это метод "запуска" - метод, который обозначается как "Это приводит к выполнению основного запроса".Другие методы «запуска» включают all()
, first()
и т. Д.
Как получить SQL для таких методов?
Меня особенно интересует count()
, потому что он преобразует лежащие в основезапрос в некотором смысле (на самом деле, этот способ явно описан в документах , но все может отличаться).Другие методы также могут изменять результирующий SQL, например, first()
.
Так что иногда бывает полезно получить необработанный SQL таких запросов, чтобы выяснить, как все это происходит.
Я читаю ответы о «получении необработанного SQL», но этот случай особенный, потому что такие методы не возвращают Query
объекты .
Обратите внимание, что я имею в виду, что мне нужен SQL существующих Query
объектов, которые уже построены каким-либо образом.