使用 Django 有个很方便的东西就是它的 ORM 查询语句,但是有时候碰上一些复杂的语句,或者新用到的功能,比如 distinct, sum。
我们想要知道使用 ORM 查询返回的结果是不是正确,我们可以将之对应的 MySQL 语句打印出来印证一下。
有两种方法,如果是比较简单的查询语句,可以使用以下方法:
ArticleInfo.objects.filter(id = 1).query.__str__()
如果查询涉及 count() 这种功能,上述方法貌似就不起作用了,可以使用以下方法:
from django.db import connection
#这里执行一段复杂的查询代码
connection.queries[-1]['sql']
#因为是紧接着查询之后查看代码,所以选择最后一条记录即可