如何打印聚合的 Django SQL 查询?

boa*_*der 9 python django orm

如果我有一个 django 查询集,它print(queryset.query)会向我显示 SQL 语句,以便我可以验证它。但对于聚合,它们永远不会返回查询集。你如何打印这些查询。

我想我可以打开 ORM 的调试日志记录并以这种方式找到它们,但似乎我应该能够在执行引擎将其发送到 postgres 之前得到它......

Ami*_*Ali 2

connection.queries您可以在聚合查询之后使用。

例子:

...
from django.db import connection

def your_view(request):
    # Your view logic and aggregate queryset
    
    print(connection.queries)  

    return render(request, 'index.html', {})
Run Code Online (Sandbox Code Playgroud)

输出是您输入到数据库中的SQL 查询的字典。