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

Django迁移报错:webapp.Login.user_permissions反向访问器冲突

解决Django模型迁移的反向访问器冲突问题

问题原因

自定义继承AbstractUser的Login模型后,Django默认的auth.User模型仍存在,两者的user_permissions字段反向访问器名称重复,导致迁移时出现冲突。

解决步骤

  1. 配置自定义用户模型
    打开项目的settings.py文件,添加如下配置,指定Django使用你的自定义用户模型:

    AUTH_USER_MODEL = 'webapp.Login'
    

    注意:该配置必须在首次执行迁移前设置;若已执行过迁移,需清空数据库及webapp/migrations目录下除__init__.py外的所有迁移文件后再操作。

  2. 统一模型关联方式
    项目中所有需要关联用户模型的地方,都要使用自定义的Login模型或通过settings.AUTH_USER_MODEL引用,示例:

    from django.conf import settings
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    

    你的Student模型已正确关联Login,这部分无需修改。

  3. 重新执行迁移
    清理残留后,运行以下命令完成迁移:

    python manage.py makemigrations
    python manage.py migrate
    

额外提示

  • 一旦设置AUTH_USER_MODEL,整个项目需统一使用该自定义模型,不能再混用默认的auth.User。
  • 若为已有项目替换用户模型,需手动修改迁移文件与数据库表结构,建议在项目初期就确定用户模型方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:05:23