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

Django4.04扩展AbstractUser迁移提示users_user关系不存在报错

问题根因

relation "users_user" does not exist是自定义用户模型场景下的典型报错,本质是Django迁移流程没有正确生成自定义User模型对应的数据表。你之前删除迁移文件没有解决问题,是因为没有同步清理数据库里的残留表结构和迁移记录。

修复操作步骤

按顺序执行以下操作即可解决:

  • 清理所有残留数据
    1. 删除项目根目录下的数据库文件:如果用默认SQLite就是db.sqlite3,如果用MySQL/PostgreSQL就直接删除原有库、新建一个同名空库
    2. 进入项目所有app的migrations目录,仅保留__init__.py文件,删除其余所有编号开头的迁移文件(比如0001_initial.py、0002_xxx.py这类)
  • 校验配置正确性
    打开settings.py确认两个配置:
    1. 自定义用户模型所在的users app已经添加到INSTALLED_APPS列表中
    2. AUTH_USER_MODEL = 'users.User'配置正确,没有拼写错误
      额外说明:你form.py里的from attr import field是冗余无效导入,可以直接删掉,不影响功能。
  • 按正确顺序执行迁移
    先单独为用户所在app生成初始迁移文件:
    python manage.py makemigrations users
    
    再执行全量迁移:
    python manage.py migrate
    
    迁移执行完成后,数据库里就会正常生成users_user表,此时再执行createsuperuser、正常使用用户相关功能都不会再报这个错。
注意事项
  • Django自定义用户模型有严格限制:必须在项目第一次执行migrate命令之前就完成AUTH_USER_MODEL配置,如果已经跑过默认auth的初始迁移再改自定义用户模型,就必须按上面的清库步骤重来,Django不支持迁移中途替换用户模型。
  • 后续如果要给User模型增减字段,正常执行makemigrations和migrate即可,不需要重复清库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:54:20