如何查看django 1.4.11为此查询生成的查询:
obj = Model.objects.get(code='code')
我试过了:
print Model.objects.get(code='code').query
但是模型对象有这样的方法。 我怎样才能获得原始的sql?
答案 0 :(得分:2)
它不起作用,因为query
是Queryset
对象的属性,当你执行.get()
时,它会对Queryset进行评估(并成为Model的一个实例)< / p>
如果您尝试:
>>> type(Model.objects.get(code='code'))
<class 'app.models.Model'>
>>> print Model.objects.get(code='code').query
AttributeError: 'Model' object has no attribute 'query'
但改为:
>>> type(Model.objects.all())
<class 'django.db.models.query.QuerySet'>
>>> print Model.objects.all().query
SELECT "model.Model" from ...
现在,要获取所有查询的SQL,您有几个选项:
如果DEBUG=True
你可以使用它:
from django.db import connection
print connection.queries
使用django-debug-toolbar