Django获取QuerySet的可执行原始sql

时间:2010-09-22 12:18:02

标签: python sql django orm

我知道您可以使用

获取给定QuerySet的SQL
print query.query

但正如我们从上一个问题(Potential Django Bug In QuerySet.query?)所知,返回的SQL未正确引用。见http://code.djangoproject.com/browser/django/trunk/django/db/models/sql/query.py

有没有办法在没有实际执行的情况下获取给定QuerySet的原始可执行SQL(引用)?

1 个答案:

答案 0 :(得分:8)

Django从不创建原始sql,所以没有。为防止SQL注入,django在最后一步将参数分别传递给数据库驱动程序。获取实际SQL的最佳方法是查看查询日志,在执行查询之前不能这样做。