检查Django生成的查询

时间:2014-07-17 10:43:35

标签: django django-orm

如何查看django 1.4.11为此查询生成的查询:

obj = Model.objects.get(code='code')

我试过了:

print Model.objects.get(code='code').query

但是模型对象有这样的方法。 我怎样才能获得原始的sql?

1 个答案:

答案 0 :(得分:2)

它不起作用,因为queryQueryset对象的属性,当你执行.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,您有几个选项: