小编典典

如何查看Django ORM的查询集对应的SQL查询?

all

有没有办法可以打印 Django ORM 正在生成的查询?

假设我执行以下语句:Model.objects.filter(name='test')

如何查看生成的 SQL 查询?


阅读 52

收藏
2022-08-03

共1个答案

小编典典

每个 QuerySet 对象都有一个query属性,您可以将其记录或打印到标准输出以进行调试。

qs = Model.objects.filter(name='test')
print(qs.query)

请注意,在 pdb 中, usingp qs.query不会按预期工作,但print(qs.query)会。

如果这不起作用,对于旧 Django 版本,请尝试:

print str(qs.query)

编辑

我还使用自定义模板标签(如本片段中所述)将查询注入单个请求范围内作为
HTML 注释。

2022-08-03