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

Django自定义User_info模型创建超级用户时触发TypeError错误求助

问题解决:自定义User模型创建超级用户时出现is_staff参数错误

问题原因

你的User_info模型中没有定义is_staff字段,但自定义管理器的create_staffuser和create_superuser方法里,都往extra_fields中传入了is_staff=True参数。创建模型实例时Django找不到对应字段,因此抛出参数不匹配的错误。

注意:PermissionsMixin仅提供is_superuser字段,is_staff需要手动在自定义用户模型中添加。

修复步骤

修改User_info模型,添加is_staff字段:

class User_info(AbstractBaseUser, PermissionsMixin):
    name = models.CharField(max_length=32)
    usr_id = models.CharField(max_length=20)
    number = models.CharField(max_length=12)
    account = models.CharField(max_length=20,unique=True)
    gender = models.CharField(max_length=1, choices=[('M', '男'), ('F', '女')], default='M')
    balance = models.DecimalField(max_digits=10, decimal_places=2, default=0)
    # 添加is_staff字段,默认设为False
    is_staff = models.BooleanField(default=False)

    objects = CustomUserManager()

    USERNAME_FIELD = 'account'
    REQUIRED_FIELDS = ['name', 'usr_id', 'number', 'gender']

    def __str__(self):
        return self.account

后续操作

  • 执行数据库迁移命令:
python manage.py makemigrations
python manage.py migrate
  • 重新尝试创建超级用户:
python manage.py createsuperuser

此时模型已包含is_staff字段,与管理器传递的参数匹配,即可正常创建超级用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 12:12:52