Django 4.2.5开启DEBUG=True却不显示黄色错误页求助
检查ALLOWED_HOSTS配置
当DEBUG=True时,若ALLOWED_HOSTS未包含当前访问的主机地址,Django会判定请求来自不安全来源,自动返回通用500错误提示而非调试页。确保配置包含你当前使用的访问地址,比如本地开发可设置:ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']或临时设为
['*']测试是否解决问题。排查第三方中间件干扰
你的中间件列表包含corsheaders.middleware.CorsMiddleware和debug_toolbar.middleware.DebugToolbarMiddleware,这类第三方中间件可能在错误处理流程中修改了响应。尝试临时移除这些第三方中间件,保留Django核心中间件后测试:MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.contrib.admindocs.middleware.XViewMiddleware' ]若恢复调试页,再逐个加回中间件定位具体干扰项。
检查是否存在自定义异常处理
项目中若自定义了handler500视图,会覆盖Django默认的调试错误页。查看根urls.py是否有类似配置:handler500 = 'your_app.views.custom_error_page'若存在,注释后测试是否恢复默认调试页。
验证DEBUG_PROPAGATE_EXCEPTIONS的影响
DEBUG_PROPAGATE_EXCEPTIONS = True会让异常直接传播到WSGI服务器而非由Django处理。若你使用的服务器(如非runserver的生产级服务器)捕获异常并返回自身的错误页面,也会看不到Django的调试页。可临时将其设为False,测试是否能正常显示调试页。排查模板或静态文件损坏
Django的调试错误页依赖自带的模板和静态资源,若这些文件被修改或损坏,可能无法正常渲染。可新建一个空白Django 4.2.5项目,触发错误测试是否能显示调试页,以此排除项目文件本身的问题。
内容的提问来源于stack exchange,提问作者Bad Boy

