Django获取QuerySet的可执行原始SQL
我知道你可以通过以下方式获取一个QuerySet的SQL语句:
print query.query
但是,正如我们在之前的问题中了解到的(可能的Django QuerySet.query错误?),返回的SQL语句没有正确地加上引号。你可以查看这个链接了解更多信息:http://code.djangoproject.com/browser/django/trunk/django/db/models/sql/query.py
有没有什么方法可以在不实际执行的情况下,获取一个给定QuerySet的原始可执行SQL(带引号的)呢?
1 个回答
9
Django不会直接生成原始的SQL语句,所以答案是否定的。为了防止SQL注入,Django会在最后一步把参数单独传递给数据库驱动。想要查看实际的SQL语句,最好的办法是查看你的查询日志,但在执行查询之前,你是无法做到这一点的。