出现no such table: auth_user报错且无法访问Django admin页面修复求助
错误原因
no such table: auth_user 报错的核心原因是Django内置身份认证系统对应的用户表没有在数据库中成功创建,你仅删除旧迁移文件但没有清理旧数据库的迁移状态记录,导致Django认为表已经创建过,不会重新执行内置应用的迁移逻辑。
完整修复步骤
- 首先删除项目根目录下的默认数据库文件
db.sqlite3,如果你使用MySQL、PostgreSQL等其他数据库,直接删除对应数据库后重新创建一个空的同名数据库即可。 - 清理所有自定义应用的迁移文件:逐个打开每个app下的
migrations文件夹,删除文件夹内除__init__.py之外的所有文件,注意不要删除__init__.py本身。 - 重新生成全量迁移文件,在项目根目录执行命令:
python manage.py makemigrations - 执行迁移操作将表结构同步到数据库,执行命令:
python manage.py migrate - 若需要访问admin后台,执行以下命令创建超级管理员账号:
python manage.py createsuperuser
你的现有配置是完全正确的:
INSTALLED_APPS中已经启用了django.contrib.auth,模型关联和注册视图的写法也没有问题,按上述步骤执行完迁移后,auth_user表会自动创建,注册功能和admin后台都可以正常访问。
内容的提问来源于stack exchange,提问作者Waqart
相关产品推荐
相关产品推荐

