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

Django登录admin管理页面报错:提示django_session对象无效

报错原因

这个错误的本质是Django当前连接的SQL Server实例中找不到django_session表。Django内置的会话框架(admin登录功能强依赖该框架)会把用户登录后的会话数据存在这张表里,表缺失时就会触发ODBC驱动抛出对象不存在的错误,常见触发场景包括:

  • 项目配置完SQL Server数据库后,从未执行过数据库迁移命令,session相关的表从未生成
  • settings.py中django.contrib.sessions没有被加入INSTALLED_APPS列表,迁移时不会生成session相关表
  • 数据库连接配置错误,执行迁移时连的是其他数据库/实例,当前运行的项目连接的库里没有对应表
  • SQL Server自定义schema配置错误,Django默认查找表的schema下没有该表,或者表被手动误删、连接账号无表访问权限
修复步骤

按以下顺序排查修复即可:

  1. 校验基础配置
    打开项目settings.py确认两项配置:
  • 确认INSTALLED_APPS中已加入session内置应用,参考配置如下:
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions', # 必须存在,缺失则不会生成session表
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 自定义应用
]
  • 确认DATABASES配置中SQL Server连接信息准确:实例地址、库名、登录账号密码、ODBC驱动版本和本机安装版本一致,没有连错数据库实例。
  1. 执行迁移生成缺失表
    在manage.py所在的项目根目录执行以下迁移命令:
python manage.py makemigrations
python manage.py migrate

执行过程中观察终端输出,出现Applying sessions.0001_initial... OK即代表django_session表已经成功创建到目标库中。
3. 特殊场景排查
如果迁移执行完成后仍报相同错误,做两项校验:

  • 如果你的数据库配置中在OPTIONS里指定了自定义schema,登录SQL Server管理工具,确认对应schema下确实存在django_session表,没有写错schema名称
  • 确认项目使用的数据库账号对django_session表有读写权限,没有因为权限不足导致无法识别表对象
  1. 验证结果
    重启Django开发服务,重新访问admin页面使用超级用户账号登录即可正常进入管理后台。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:01:46