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

Django后台登录报错:Related Object Does Not Exist问题求助

Django Admin登录报错:Related Object Does Not Exist at /admin/login/

当你尝试登录http://localhost:8000/admin/,输入正确用户名和密码后却遇到**「Related Object Does Not Exist at /admin/login/」**错误,还附带「User does not exist」的提示,确实让人头疼。结合你提到之前移除了django.contrib.sites应用,以及当前使用的Django 2.0.2 + Python 3.6环境,我来帮你梳理问题原因和解决办法:


一、你的项目配置信息

settings.py核心配置

# Application definition
INSTALLED_APPS = [
 'nutrients.apps.NutrientsConfig',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'profile',
]
MIDDLEWARE = [
 'django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'nutrition.urls'
CMS_TEMPLATES = ('index.html', 'Left sidebar template')
TEMPLATES = [
 {
 'BACKEND': 'django.template.backends.django.DjangoTemplates',
 'DIRS': [os.path.join(os.path.dirname(__file__), 'templates'),],
 'APP_DIRS': True,
 'OPTIONS': {
 'context_processors': [
 'django.template.context_processors.debug',
 'django.template.context_processors.request',
 'django.contrib.auth.context_processors.auth',
 'django.contrib.messages.context_processors.messages',
 ],
 },
 },
]
WSGI_APPLICATION = 'nutrition.wsgi.application'
DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.sqlite3',
 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
 }
}

报错回溯信息

Request Method: POST
Request URL: http://127.0.0.1:8000/admin/login/?next=/admin/
Django Version: 2.0.2
Python Version: 3.6.5
Installed Applications: ['nutrients.apps.NutrientsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'profile']
Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/login/?next=/admin/
Django Version: 2.0.2
Python Version: 3.6.5
Installed Applications: ['nutrients.apps.NutrientsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'profile']
Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\core\handlers\exception.py" in inner
35. response = get_response(request)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\core\handlers\base.py" in _get_response
128. response = self.process_exception_by_middleware(e, request)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\core\handlers\base.py" in _get_response
126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\contrib\admin\sites.py" in login
398. return LoginView.as_view(**defaults)(request)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\views\generic\base.py" in view
69. return self.dispatch(request, *args, **kwargs)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\utils\decorators.py" in _wrapper
62. return bound_func(*args, **kwargs)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\views\decorators\debug.py" in sensitive_post_parameters_wrapper
76. return view(request, *args, **kwargs)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\utils\decorators.py" in bound_func
58. return func.__get__(self, type(self))(*args2, **kwargs2)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\utils\decorators.py" in _wrapper
62. return bound_func(*args, **kwargs)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\utils\decorators.py" in _wrapped_view
142. response = view_func(request, *args, **kwargs)
File "C:\Users\Kanverse\Anaconda3\lib\site-packages\django\utils\decorators.py" in bound_func
58. return func.__

二、问题原因与解决方案

原因分析

在Django 2.0.x版本中,django.contrib.admin底层依赖django.contrib.sites的部分功能,尤其是你的项目中还包含profile应用(大概率是自定义的用户扩展模型),移除django.contrib.sites后,登录逻辑会尝试查找关联的Site对象,找不到就会抛出「Related Object Does Not Exist」错误,同时误提示「User does not exist」。

解决步骤

  1. 重新添加django.contrib.sites到INSTALLED_APPS
    修改settings.py的INSTALLED_APPS列表,加入:

    'django.contrib.sites',
    
  2. 配置SITE_ID
    在settings.py末尾添加固定站点ID:

    SITE_ID = 1
    
  3. 执行数据库迁移
    运行命令创建Site相关的数据库表:

    python manage.py migrate
    
  4. 检查自定义Profile模型(可选)
    如果你的profile应用中有与Site模型关联的字段,比如:

    from django.contrib.sites.models import Site
    
    class Profile(models.Model):
        user = models.OneToOneField(User, on_delete=models.CASCADE)
        site = models.ForeignKey(Site, on_delete=models.CASCADE)
    

    要么确保数据库中存在ID为1的Site记录(迁移后会自动创建),要么根据业务需求移除该关联字段。

  5. 重置管理员账号(可选)
    如果迁移后仍有问题,可以尝试重新创建管理员账号:

    python manage.py createsuperuser
    

完成以上步骤后,再次尝试登录admin后台,应该就能正常访问了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:08:19