Django ORM:我怎样才能看到上次执行的查询

hre*_*tic 3 python django orm

所以假设我们有一个使用 django orm 的简单查询

filterd = User.objects.exclude(id = request.user.id ).filter(username=data['username'] )
Run Code Online (Sandbox Code Playgroud)

这假设返回一些对象,但它不返回任何对象!显然我做错了什么,因为我对 django ORM 还不满意,所以我会帮助很多人知道在这一行中究竟执行了什么查询

我四处寻找我找到了这个

print(filter.query)
Run Code Online (Sandbox Code Playgroud)

但我明白了

AttributeError: type object 'filter' has no attribute 'query'
Run Code Online (Sandbox Code Playgroud)

我猜当没有返回任何对象时过滤器是 None 所以......我该怎么办?

bet*_*mig 5

尝试:

from django.db import connection as conn
filterd = User.objects.exclude(id = request.user.id).filter(username=data['username'] )
# to execute query
print filterd
print conn.queries
Run Code Online (Sandbox Code Playgroud)