django TypeError:MyUserManager.create_superuser()缺少1个必需的位置参数:'用户名'

kq4fsx7k  于 2023-08-08  发布在  Go
关注(0)|答案(2)|浏览(105)

我尝试使用以下命令创建一个超级用户:“python manage.py createsperuser”,但我不能。下面是错误:“类型错误:MyUserManager.create_superuser()缺少1个必需的位置参数:'username'"。
下面是我的代码:'''
类MyUserManager(UserManager):

def create_superuser(self, username: str, email: str | None, password: str | None, **extra_fields: Any) -> Any:
    self.username = extra_fields['phone']
    REQUIRED_FIELDS = ['username']
    return super().create_superuser(username, email, password, **extra_fields)

def create_user(self, username: str, email: str | None = ..., password: str | None = ..., **extra_fields: Any) -> Any:
    username = extra_fields['phone']
    return super().create_user(username, email, password, **extra_fields)

字符串
'''

pbgvytdp

pbgvytdp1#

这个错误告诉你,这个函数需要一个名为username的关键字参数。所以你很可能需要这样调用函数

return super().create_superuser(username=username, email=email, password=password, **extra_fields)

字符串
快速侧注:有人可能会忍不住这么做

return super().create_superuser(username=username, email, password, **extra_fields)


因为关键字参数后面不能跟普通参数。

csbfibhn

csbfibhn2#

我认为你应该删除它REQUIRED_FIELDS=['username'],因为在django中默认情况下它是username

相关问题