Сохранение sql-запроса во время выполнения Django
Я использую Django ORM для динамического создания сложных SQL запросов, я хочу сохранить ---в процессе выполнения--- SQL запрос, который Django создает для будущего использования, я не нашел подходящего способа сделать это.
Как объясняется здесь, есть два способа доступа к запросу, но только connection.queries
содержит правильный запрос, и его нужно задать debug=True
.
Поскольку я хочу сделать это в среде продукта, debug=True
не совсем подходящее решение для меня, и я не хочу менять исходный код Django.
Любое решение/комментарий может помочь мне.
Я использую Django 2.2.
Ответ зависит от того, как вы хотите сохранить и повторно использовать эти запросы.
Если вы хотите хранить/использовать запросы вне приложения Django, я бы рекомендовал изменить настройки логирования, например, как это сделано здесь. Смотрите также документацию. При необходимости, логирование также может быть выполнено в самой базе данных SQL, а не в Django.
Сохранение и повторное использование запросов внутри приложения Django кажется сложным, и есть причины безопасности, по которым connection.queries
работает только в отладочной среде. Можно попробовать подход, аналогичный изложенному здесь.