【问题标题】:Logging Django SQL queries with DEBUG set to False使用 DEBUG 设置为 False 记录 Django SQL 查询
【发布时间】:2026-01-28 21:30:05
【问题描述】:
【问题讨论】:
标签:
sql
django
optimization
django-orm
【解决方案1】:
在 Django 1.3 中,我看到 django/db/backends/__init__.py 中的类 BaseDatabaseWrapper 有一个属性 use_debug_cursor。此类是代表默认数据库连接 (docs) 的 django.db.connection 对象的包装器。似乎将此属性设置为 true 会导致 Django 使用来自django/db/backends/util.py 的CursorDebugWrapper,它记录它执行的所有查询,而不是CursorWrapper,它不会。
use_debug_cursor 在 Django 1.2 中不存在,这是我目前在这台机器上安装的,所以我现在无法测试它。如果我有几分钟的时间,我会尝试让一个虚拟的 1.3 项目开始对此进行测试...我很可能在这里搞砸了!
use_debug_cursor 在 Django 1.8 中重命名为 force_debug_cursor