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

新建Django项目admin路由被旧项目Django-Allauth配置覆盖如何解决

可能的原因及对应解决方案

1. 端口残留旧服务进程

你可能之前启动的旧项目服务没有正常关闭,仍然占用8000端口,新启动的项目实际上没有成功绑定端口,所有请求还是打到了残留的旧服务进程上。

解决方法:

先杀掉所有占用8000端口的进程,再重启新项目:

  • Windows系统:
    执行命令查看占用端口的进程PID:
    netstat -ano | findstr :8000
    执行命令杀死对应进程:
    taskkill /PID 查到的PID值 /F
  • Mac/Linux系统:
    执行命令查看占用端口的进程PID:
    lsof -i:8000
    执行命令杀死对应进程:
    kill -9 查到的PID值

2. 浏览器缓存了重定向规则

旧项目运行时,你访问/admin触发了301/302重定向到/accounts/login,这类重定向会被浏览器长期缓存,即使启动了新项目,浏览器也会直接跳转缓存的旧路由,不会发送请求到新服务。

解决方法:

打开浏览器无痕/隐私模式访问http://127.0.0.1:8000/admin/,或者清除浏览器中127.0.0.1站点的所有缓存后再试。

3. Django配置项异常

Django默认的登录跳转地址LOGIN_URL值为/accounts/login/,如果你的配置触发了全局登录校验,就会自动跳转到这个地址,而你当前项目没有配置对应的路由,就会返回404。

解决方法:

打开项目settings.py文件做以下检查:

  • 显式配置LOGIN_URL = '/admin/login/',指定登录跳转地址为admin自带的登录页
  • 检查MIDDLEWARE列表,排查是否加入了自定义的全局登录拦截中间件,这类中间件会强制未登录请求跳转到LOGIN_URL,绕过admin自带的登录逻辑
  • 确认INSTALLED_APPS中已经启用django.contrib.admin和django.contrib.auth两个核心依赖应用

4. 路由配置冲突

如果admin路由的配置顺序在其他通配符路由之后,会导致请求被优先匹配到其他规则,没有走到admin的路由逻辑。

解决方法:

调整urls.py中的路由顺序,把path('admin/', admin.site.urls)放在所有路由规则的最前面,避免被其他规则拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:54:04