QuerySet
对象有一个
.count()
方法,也可以
len()
如果这就是你要找的:
>>> User.objects.filter(name='Bob')
>>> _.count()
您还可以使用
._as_sql()
>>> User.objects.filter(name='Bob')._as_sql()
或使用
>>> from django.db import connection
>>> connection.queries
注意刚才打电话
User.objects.filter(name='Bob')
不会实际执行任何SQL查询。Django在执行SQL查询之前,一直等到您对它做了一些事情。
您可以通过安装python模块来提高查询的可读性。
sqlparse
像这样做:
>>> import sqlparse
>>> def sql(qs):
... return sqlparse.format(qs._as_sql()[0], reindent=True, keyword_case='upper')
>>> print sql(User.objects.filter(name='Bob'))
见
http://code.google.com/p/python-sqlparse/