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

Django自定义AbstractUser后迁移报错:users_user表不存在及关联字段异常

迁移错误解决方案

错误原因

  1. 旧迁移文件残留:之前用Profile扩展默认User时生成的迁移文件未删除,迁移系统仍尝试引用已移除的users.Profile模型,且该模型的外键引用了小写的users.user,与当前自定义的users.User(大写)不匹配。
  2. 初始auth迁移冲突:若项目已执行过默认auth应用的迁移,更换自定义用户模型后,Django内置的admin.LogEntry模型会引用旧用户模型,导致冲突。

解决步骤

1. 清理残留迁移文件

  • 进入users应用的migrations目录,删除所有涉及Profile模型的迁移文件(如0002_profile.py),仅保留__init__.py和创建User模型的迁移文件(如0001_initial.py)。
  • 进入posts应用的migrations目录,删除所有迁移文件,仅保留__init__.py。

2. 重置数据库(重要:先备份数据)

  • 若使用SQLite,直接删除项目根目录下的db.sqlite3文件;若使用其他数据库,清空数据库并删除django_migrations表中的所有记录。

3. 重新生成并执行迁移

在项目根目录下依次执行命令:

python manage.py makemigrations
python manage.py migrate

4. 注册自定义User到后台(可选但建议)

在users/admin.py中添加以下代码,确保自定义User模型能在Django后台正常管理:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User

admin.site.register(User, UserAdmin)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 15:16:02