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

Django Abstract User迁移问题求助:删除迁移文件和数据库后仍异常

Django Abstract User迁移问题排查方案
  • 先确认settings.py里的用户模型配置:
    必须确保AUTH_USER_MODEL = '你的应用名.自定义用户模型类名'配置准确,而且这个配置必须在项目第一次迁移前就设置好——如果是中途改的,就算删迁移删数据库也会有遗留问题。检查应用名和类名有没有拼写错误。

  • 彻底清理迁移相关文件:

    1. 删掉所有应用下migrations文件夹里,除了__init__.py之外的所有.py和.pyc文件
    2. 删除项目根目录的数据库文件(比如db.sqlite3,如果用的是其他数据库就清空对应库)
    3. 执行命令python manage.py makemigrations重新生成迁移文件,再执行python manage.py migrate完成迁移
  • 检查自定义用户模型代码:

    • 确认模型正确继承AbstractUser,不要重复定义Django内置的字段(比如要替换username的话,得用username = None再重新定义,或者设置USERNAME_FIELD为其他字段)
    • 新增的字段要设置好默认值或者允许为空,避免迁移时因为必填字段无值报错
    • 检查Meta类的配置,有没有和内置用户模型冲突的设置
  • 排查其他应用的依赖:
    检查项目里的其他应用(包括第三方库),有没有直接引用django.contrib.auth.models.User的情况,全部改成from django.contrib.auth import get_user_model或者直接导入你的自定义用户模型,否则会导致迁移时模型不匹配

  • 用测试项目验证:
    新建一个空白Django项目,直接配置自定义用户模型并执行迁移,如果能正常运行,说明原项目里有隐藏的配置或依赖问题,需要逐步排查原项目的其他代码和配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 05:41:04