Django Admin面板自动重定向至/accounts/login/?next=/admin/问题求助
解决Django Admin重定向到
/accounts/login/?next=/admin/的问题 1. 先确认是否创建了超级用户
Django Admin必须登录才能访问,若还未创建超级用户,执行以下命令创建:
python manage.py createsuperuser
创建完成后用该账号尝试登录Admin。
2. 检查settings.py中的LOGIN_URL配置
Django默认的LOGIN_URL为'/accounts/login/',如果项目未自定义登录视图,Admin会自动跳转到这个地址。你可以在settings.py中指定Admin自带的登录URL:
LOGIN_URL = '/admin/login/'
这样未登录时访问Admin会直接跳转到系统自带的Admin登录页面,而非通用的accounts登录地址。
3. 核对INSTALLED_APPS与urls.py配置
- 确保
django.contrib.admin已添加到INSTALLED_APPS:
INSTALLED_APPS = [ 'django.contrib.admin', # 其他应用... ]
- 确认项目根
urls.py中正确配置了Admin路由:
from django.contrib import admin from django.urls import path urlpatterns = [ path('admin/', admin.site.urls), # 其他路由... ]
4. 排查DRF认证设置的干扰
DRF全局认证设置一般不会直接影响Admin,但如果自定义了认证中间件,可能干扰Admin登录逻辑。检查settings.py中的MIDDLEWARE和REST_FRAMEWORK配置,确保未移除Django自带的认证相关中间件:
MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', # 其他中间件... ]
如果以上步骤都排查后仍有问题,可尝试清除浏览器缓存或用无痕模式访问,避免旧会话缓存导致的重定向异常。
内容的提问来源于stack exchange,提问作者NIKHIL RANE
相关产品推荐
相关产品推荐

