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