You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django Debug Toolbar的SQL面板查看UPDATE等SQL语句?

解决Django Debug Toolbar仅显示SELECT语句的问题
  • 检查工具栏回调配置
    在项目settings.py中,确保SHOW_TOOLBAR_CALLBACK没有过滤非GET请求——UPDATE/INSERT等操作通常通过POST/PUT/DELETE请求触发,若自定义回调限制了请求方法,就会看不到对应SQL。建议使用最基础的调试模式判断逻辑:

    DEBUG_TOOLBAR_CONFIG = {
        'SHOW_TOOLBAR_CALLBACK': lambda request: DEBUG,
    }
    
  • 确认SQL面板已启用
    检查DEBUG_TOOLBAR_PANELS配置,确保包含'debug_toolbar.panels.sql.SQLPanel'——如果自定义了面板列表却漏掉这个,就无法捕获任何SQL语句:

    DEBUG_TOOLBAR_PANELS = [
        # 其他需要的面板...
        'debug_toolbar.panels.sql.SQLPanel',
        # 其他需要的面板...
    ]
    
  • 开启AJAX请求调试
    很多UPDATE操作通过AJAX发起,默认工具栏可能不追踪这类请求,需手动开启:

    DEBUG_TOOLBAR_CONFIG = {
        'SHOW_TOOLBAR_CALLBACK': lambda request: DEBUG,
        'SHOW_AJAX_DEBUG': True,
    }
    
  • 验证查询是否实际执行
    若以上配置都没问题,可手动打印数据库查询记录确认UPDATE语句是否真的执行:

    from django.db import connection
    
    # 在执行UPDATE操作的代码后添加
    print(connection.queries)
    

    如果这里能看到UPDATE语句,说明是工具栏配置疏漏;如果看不到,要排查业务逻辑(比如事务回滚、条件不匹配导致未执行)。

内容的提问来源于stack exchange,提问作者blitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 17:42:03