我想看看在django的模型.save()方法上执行了什么查询.由于我在生产环境中,我不能使用Django Toolbar.
根据 Sid 的回答和这个片段 (http://djangosnippets.org/snippets/1973/),我用这个替换了 postgres db-wrapper:
# 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
Run Code Online (Sandbox Code Playgroud)
然后在settings.py, 使用'ENGINE': 'my_project.db_backend', 而不是默认后端(在我的情况下,'ENGINE': 'django.db.backends.postgresql_psycopg2',)
现在connection.queries将包含您所有的查询!
有2种方法:
在 Django 1.3 及更高版本中,您可以使用日志记录,我相信它将您的 sql 查询转储到日志中。https://docs.djangoproject.com/en/dev/topics/logging/
似乎没有 DEBUG=True 的直接简单方法。这是我能找到的最接近的:Logging Django SQL requests with DEBUG set to False