我知道你可以输出SQL来查看创建的表。 Django是否可以输出用于任何查询的sql,如:
Protocols.objects.filter(active=False)
?我在文档中找不到这个,所以希望有人可以指出它们,如果事实上Django可以做到这一点。
答案 0 :(得分:12)
请参阅Django常见问题解答:How can I see the raw SQL queries Django is running?:
>>> from django.db import connection
>>> connection.queries = []
>>> Protocols.objects.filter(active=False)
>>> print connection.queries
答案 1 :(得分:8)
是的,它可以。你需要确保这一点
DEBUG =真
在您的设置文件中
您可以看到...已经执行了哪些SQL查询
>>> from django.db import connection
>>> connection.queries
您显然需要执行一些查询才能在此处查看。
要查看为执行特定QuerySet而执行的内容,您可以执行以下操作
STR(MyModel.objects.filter(myvar__gte = 15).query)
答案 2 :(得分:3)
我发现Django debug toolbar非常宝贵。还有.as_sql()用于事物的代码显示(请参阅this SO post以获得与其相符的注释)