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

Django自定义用户模型报错:AUTH_USER_MODEL引用模型未安装

解决Django自定义用户模型的ImproperlyConfigured错误

1. 核对基础配置

  • 确认settings.py中INSTALLED_APPS已正确添加'authen',拼写完全匹配应用目录名(区分大小写)。
  • 确保AUTH_USER_MODEL = 'authen.CustomUser'的应用名和模型名无误,模型类在authen/models.py中确实命名为CustomUser。

2. 检查模型与管理器代码

  • 若自定义管理器放在单独的manager.py中,需在models.py正确导入:
    from .manager import CustomUserManager
    
  • 确保CustomUser模型继承自AbstractBaseUser并关联自定义管理器,示例代码:
    from django.contrib.auth.models import AbstractBaseUser
    from django.db import models
    from .manager import CustomUserManager
    
    class CustomUser(AbstractBaseUser):
        email = models.EmailField(unique=True)
        is_active = models.BooleanField(default=True)
        is_staff = models.BooleanField(default=False)
        objects = CustomUserManager()
    
        USERNAME_FIELD = 'email'
        REQUIRED_FIELDS = []
    
  • 自定义管理器必须实现create_user和create_superuser方法,避免Django初始化时出错。

3. 按顺序执行迁移

  • 先为authen应用单独生成迁移文件:
    python manage.py makemigrations authen
    
  • 再执行全局迁移:
    python manage.py migrate
    

注意:必须先处理自定义用户模型的迁移,不能直接执行全局migrate,否则Django会优先加载默认用户模型。

4. 排查隐性冲突

  • 检查其他应用是否提前导入了默认User模型(如from django.contrib.auth.models import User),需全部替换为动态获取用户模型的方式:
    from django.contrib.auth import get_user_model
    User = get_user_model()
    
  • 验证Python与Django版本兼容性:最新版Django(如5.x)要求Python 3.10+,若使用Python 3.1需降级Django至兼容版本(如Django 3.2,支持Python 3.6-3.10)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:48:22