Django应用登录成功后重定向异常(404错误)求助
排查Django登录后跳转404的方向
1. 确认目标跳转URL的路由配置存在
你设置的LOGIN_REDIRECT_URL = '/api/listsystemhazardcontrols/',但当前提供的URL配置里没有这个路径。需要:
- 检查项目主
urls.py是否包含了app的路由分发,比如:path('api/', include('app.urls')) - 检查app的
urls.py里是否有对应路径的配置,示例:path('listsystemhazardcontrols/', views.target_view, name='listsystemhazardcontrols') - 可执行
python manage.py show_urls(需安装django-extensions)快速列出所有已配置URL,确认目标路径是否存在。
2. 改用URL名称配置跳转,避免硬编码路径
硬编码路径易出错,建议用URL的name属性配置跳转:
# settings.py LOGIN_REDIRECT_URL = 'listsystemhazardcontrols' # 对应目标path的name值 # 若使用了命名空间,写成'app:listsystemhazardcontrols'
3. 排查next参数的干扰
Django的LoginView会优先使用请求中的next参数作为跳转目标:
- 直接访问
/login/(不带任何GET参数)测试,看是否跳转到LOGIN_REDIRECT_URL配置的路径 - 检查登录表单是否正确处理
next字段,确保未传入错误的next值
4. 验证404页面的实际请求路径
DEBUG模式下,Django的404页面会显示当前请求的完整URL,确认跳转路径和配置的LOGIN_REDIRECT_URL是否完全一致,排查拼写错误(比如斜杠、单词拼写)。
5. 确认路由层级匹配
如果目标URL是/api/listsystemhazardcontrols/,需确保主路由里有api前缀的分发规则,确保层级对应。
内容的提问来源于stack exchange,提问作者HuddersfieldLad
相关产品推荐
相关产品推荐

