Django与PyCharm持续出现URL错误,未配置登录却跳/login/报404
解决Django自动跳转到/login/出现404的问题
1. 执行数据库迁移
启动服务器时提示的18个未应用迁移,涉及admin、auth、contenttypes、sessions这些Django核心应用,未创建对应数据库表会导致认证和会话系统异常,触发不必要的登录重定向。执行以下命令完成迁移:
python manage.py migrate
2. 检查根URL配置
查看项目根目录下的urls.py,确认是否存在以下配置:
- 引入了
django.contrib.auth.urls(例如path('', include('django.contrib.auth.urls'))) - 手动配置了登录路由(例如
path('login/', auth_views.LoginView.as_view()))
如果完全不需要登录相关功能,直接删除这些路由配置;如果需要登录功能,需确保登录视图的模板存在,或在视图中指定模板路径(例如LoginView.as_view(template_name='login.html'))。
3. 清理浏览器缓存与Cookie
浏览器可能缓存了之前的重定向记录或无效会话Cookie,导致每次访问都自动跳转到/login/。清除当前站点的缓存和Cookie后,重新访问http://127.0.0.1:8000/。
4. 调整Settings中的中间件配置
打开settings.py,找到MIDDLEWARE列表:
- 若不需要任何认证功能,可注释掉
django.contrib.auth.middleware.AuthenticationMiddleware和django.contrib.sessions.middleware.SessionMiddleware - 若需要使用admin后台,保留这两个中间件,但必须确保已完成数据库迁移(步骤1)
注意:Django不存在LOGIN=False这个配置项,设置该参数无任何效果。
5. 排查自定义代码
检查项目中是否存在自定义中间件、全局装饰器或视图,无意中触发了登录重定向逻辑,比如某些中间件强制检查用户登录状态,未登录则重定向到/login/。
内容的提问来源于stack exchange,提问作者user26045344
相关产品推荐
相关产品推荐

