有什么方法可以打印Django ORM正在生成的查询吗?
假设我执行以下语句:Model.objects.filter(name='test')
如何查看生成的SQL查询?
有什么方法可以打印Django ORM正在生成的查询吗?
假设我执行以下语句:Model.objects.filter(name='test')
如何查看生成的SQL查询?
每个QuerySet对象都有一个query
属性,您可以将其记录或打印到标准输出中以进行调试.
qs = Model.objects.filter(name='test')
print(qs.query)
请注意,在PDB中,使用p qs.query
不会按预期工作,但使用print(qs.query)
可以.
如果这不起作用,对于Django旧版本,请try :
print str(qs.query)
Edit个
我还使用自定义模板标记(如this snippet中所述)将查询作为HTML注释注入单个请求的范围.