有没有一种方法可以显示执行查询时Django正在运行的SQL?
请参阅文档FAQ:“ 如何查看Django正在运行的原始SQL查询? ”
django.db.connection.queries 包含SQL查询的列表:
django.db.connection.queries
from django.db import connection print(connection.queries)
查询集还具有包含要执行的查询的query属性:
print(MyModel.objects.filter(name="my name").query)
请注意,查询的输出不是有效的SQL,因为:
“ Django从未实际插入参数:它将查询和参数分别发送到数据库适配器,后者执行适当的操作。”
来自Django错误报告#17741。
因此,你不应将查询输出直接发送到数据库。