Сохранение sql-запроса во время выполнения Django

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

Как объясняется здесь, есть два способа доступа к запросу, но только connection.queries содержит правильный запрос, и его нужно задать debug=True.

Поскольку я хочу сделать это в среде продукта, debug=True не совсем подходящее решение для меня, и я не хочу менять исходный код Django.

Любое решение/комментарий может помочь мне.

Я использую Django 2.2.

Ответ зависит от того, как вы хотите сохранить и повторно использовать эти запросы.

Если вы хотите хранить/использовать запросы вне приложения Django, я бы рекомендовал изменить настройки логирования, например, как это сделано здесь. Смотрите также документацию. При необходимости, логирование также может быть выполнено в самой базе данных SQL, а не в Django.

Сохранение и повторное использование запросов внутри приложения Django кажется сложным, и есть причины безопасности, по которым connection.queries работает только в отладочной среде. Можно попробовать подход, аналогичный изложенному здесь.

Вернуться на верх