1

我正在设置自定义用户身份验证,当我尝试在 powershell 中创建超级用户时,它给了我一个错误“[Previous line repeated 986 more times] RecursionError: maximum recursion depth exceeded”,它指的是我的 create_superuser()

模型.py

def create_superuser(self, username, password=None):
    user = self.create_superuser(
        username,
        password = password,
        is_staff = True,
        is_admin = True

    )
    user.save(using=self._db)
    return user
4

2 回答 2

1

看起来你想调用一个重载的函数。

在 Python 中,没有函数重载。相反,函数可以具有灵活的签名(可选参数,通过*args**kwargs接收任何参数)。如果你在同一个作用域中定义了两个同名的函数,解释器后面遇到的函数将简单地替换前者。

因此,您需要使用灵活的签名将您的两个功能合并为一个。(没有什么可以阻止您拆分辅助函数或其他任何东西,但它们需要有不同的名称)。

于 2019-07-15T03:48:58.620 回答
0

创建超级用户是创建用户强制密码

class UserProfileManager(BaseUserManager):
    """ Manager para perfiles de usuario """
    def create_user(self, username, password=None):
        """ Crear Nuevo UserProfile """
        if not username:
            raise ValueError('username!!!')
        #email= self.normalize_email(email)
        user = self.model(username=uername)
        user.set_password(password)
        user.save(using=self._db)

        return user

    def create_superuser(self, username, password): 
        user = self.create_user(username=username, 
                            password = password,
                            is_staff=True,
                            is_admin = True)
        user.save(using=self._db)
        return user
于 2021-06-14T04:10:33.683 回答