Как распечатать запросы, выполняемые django.метод save ()?
Я хочу посмотреть, какие запросы выполняются на модели django .метод Save. Поскольку я нахожусь в производственной среде, я не могу использовать панель инструментов Django для этого.
2 ответов
есть 2 способа:
в Django 1.3 и выше вы можете использовать ведение журнала, который, я считаю, сбрасывает ваши sql-запросы в журнал. https://docs.djangoproject.com/en/dev/topics/logging/
не похоже, что есть прямой простой способ без DEBUG=True. Это самое близкое, что я смог найти:--17-->ведение журнала SQL-запросов Django с отладкой False
на основе ответа Sid и этого фрагмента (http://djangosnippets.org/snippets/1973/) Я заменил db-wrapper postgres следующим:
# base.py
from django.db.backends.postgresql_psycopg2.base import *
#http://djangosnippets.org/snippets/1973/
class DatabaseWrapper(DatabaseWrapper):
def __init__(self, *args, **kwargs):
super(DatabaseWrapper, self).__init__(*args, **kwargs)
self.use_debug_cursor = True
затем в settings.py
используйте 'ENGINE': 'my_project.db_backend'
, вместо стандартного сервера (в моем случае 'ENGINE': 'django.db.backends.postgresql_psycopg2'
,)
теперь connection.queries
будет содержать все ваши запросы!