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

Django自定义用户模型创建超级用户时触发FieldDoesNotExist错误

解决Django自定义用户模型创建超级用户时的FieldDoesNotExist错误

错误原因

你在CustomUser模型的REQUIRED_FIELDS中直接传入了字段对象(full_name、phone_number),而非字段名称的字符串。Django会将这些对象解析为带模块路径的标识(如usermanager.CustomUser.full_name),但系统需要的是纯字段名字符串,因此抛出字段不存在的错误。

修复方案

将REQUIRED_FIELDS的元素改为字符串形式即可:

class CustomUser(AbstractBaseUser, PermissionsMixin):
    email = models.EmailField(unique=True)
    full_name = models.CharField(max_length=100)
    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)
    phone_number = models.CharField(max_length=10)
    institution = models.CharField(
        max_length=100,
        blank=True,
        null=True
    )

    objects = CustomUserManager()

    USERNAME_FIELD = 'email'
    # 修改为字符串列表
    REQUIRED_FIELDS = ['full_name', 'phone_number']

    def __str__(self):
        return self.email

验证修复

修改完成后,重新执行创建超级用户的命令:

python manage.py createsuperuser

此时系统会正常提示输入邮箱、全名、手机号等信息,不会再出现字段不存在的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:29:50