Django自定义用户模型给出错误:TypeError:create_superuser()获取了意外的关键字参数';用户名';

Django自定义用户模型给出错误:TypeError:create_superuser()获取了意外的关键字参数';用户名';,django,django-models,django-rest-framework,django-custom-user,Django,Django Models,Django Rest Framework,Django Custom User,我正在根据以下教程创建Django自定义用户: class UserProfileManager(BaseUserManager): """Helps Django work with our custom user model.""" def create_user(self, email, name, password=None): """Creates a user profile object.""" if not email:

我正在根据以下教程创建Django自定义用户:

class UserProfileManager(BaseUserManager):
    """Helps Django work with our custom user model."""

    def create_user(self, email, name, password=None):
        """Creates a user profile object."""

        if not email:
            raise ValueError('Users must have an email address.')

        email = self.normalize_email(email)
        user = self.model(email=email, username=name)

        user.user_id = -1
        user.set_password(password)
        user.save(using=self._db)

        return user

    def create_superuser(self, email, name, password):
        """Creates and saves a new superuser with given details."""

        user = self.create_user(email = email, name = name, password = password)

        user.is_superuser = True

        user.save(using=self._db)


class CustomUser(AbstractBaseUser, PermissionsMixin):
    """Represents a user profile inside our system"""

    email = models.EmailField(max_length=255, unique=True)
    username = models.CharField(max_length=255, unique=True)
    user_id = models.IntegerField()

    objects = UserProfileManager()

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']

    def __str__(self):
        return self.email
当我尝试创建超级用户时,会出现以下错误:

TypeError:create_superuser()获得意外的关键字参数“username”

但是,如果我将“用户名”字段的名称更改为“名称”,我将能够创建一个超级用户,而不会出错!
有人知道为什么我不能将字段命名为“name”以外的其他名称吗?

在函数中,您将
用户名
参数定义为
name

...
def create_superuser(self, email, name, password):
    ...

在代码的其他部分,甚至在django本身中。可能有人正在使用
username='some-username'
调用您的
create\u superuser
函数。您在函数上将
username
参数定义为
name

...
def create_superuser(self, email, name, password):
    ...

在代码的其他部分,甚至在django本身中。可能有人正在用
username='some-username'
调用您的
create\u superuser
函数,谢谢您的帮助!那么这是否意味着参数的名称在Django中很重要呢?事实上,它们在Python中很重要。看到这个文档,它解释得更好,我想你可以理解发生了什么:感谢链接。但是我还是不明白参数名称有多重要。哦,谢谢你,这是有效的!那么这是否意味着参数的名称在Django中很重要呢?事实上,它们在Python中很重要。看到这个文档,它解释得更好,我想你可以理解发生了什么:感谢链接。但我还是不明白参数名有多重要。