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

Django Debug Toolbar集成Wagtail时点击标签页出现404错误

解决Django Debug Toolbar标签页点击404的问题

哇,我之前也踩过这个一模一样的坑!侧边栏能正常显示统计数据,说明Toolbar已经跑起来了,但点标签页404,核心问题基本都出在URL路由配置或者中间件顺序上,咱们一步步来排查:

1. 先把URL配置调对(重点!)

你说试过多种urls配置,那先对照下标准的正确写法:
在项目根目录的urls.py里,一定要把Debug Toolbar的路由放在最最前面(避免被其他路由抢先拦截),代码示例如下:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    # 必须放在所有路由的最前面!
    path('__debug__/', include('debug_toolbar.urls')),
    path('admin/', admin.site.urls),
    # 你的其他业务路由
]

注意是双下划线的__debug__,别写成单下划线或者拼错了!如果之前用了re_path,也尽量换成path,避免正则匹配出问题。

2. 检查中间件的顺序(别小看这个!)

Django中间件的执行顺序直接影响Toolbar的功能,debug_toolbar.middleware.DebugToolbarMiddleware必须放在正确的位置:

  • 要在django.middleware.common.CommonMiddleware之后
  • 绝对不能放在django.middleware.gzip.GZipMiddleware后面(GZip会压缩响应,Toolbar没法处理压缩后的内容)
    标准的settings.py里的MIDDLEWARE配置示例:
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    # 把Debug Toolbar中间件放在这里!
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    # 如果有GZipMiddleware,要放在上面这行的前面!
    # 'django.middleware.gzip.GZipMiddleware',
]

3. 确认INTERNAL_IPS和Toolbar配置(辅助排查)

虽然你能看到侧边栏,说明这个大概率没问题,但还是快速检查下:
在settings.py里确保你的本地IP在INTERNAL_IPS里:

INTERNAL_IPS = [
    "127.0.0.1",
    # 局域网调试的话,加上你的电脑局域网IP,比如"192.168.1.105"
]

如果是用Docker/虚拟机调试,可能需要临时设置强制显示Toolbar:

DEBUG_TOOLBAR_CONFIG = {
    "SHOW_TOOLBAR_CALLBACK": lambda request: True,  # 开发环境用,上线记得删掉!
}

4. 其他小技巧

  • 清空浏览器缓存或者用无痕模式打开页面:有时候旧的JS缓存会导致请求异常
  • 检查路由冲突:确认项目里没有其他路由匹配了__debug__开头的路径(比如某个app的urls里写了类似path('debug/xxx', ...)的路由,不过双下划线的一般不会冲突,但还是确认下)
  • 版本兼容:确保你的django-debug-toolbar版本和当前Django版本匹配,比如Django 4.x需要Toolbar 4.0及以上版本,用pip show django-debug-toolbar就能查看版本。

如果按照上面的步骤试完还是不行,你可以把当前的urls.py配置贴出来,我帮你再抠细节!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:58:06