[英]"maximum recursion depth exceeded" trying to call an overloaded function
我正在设置自定义用户身份验证,当我尝试在 powershell 中创建超级用户时,它给了我一个错误“[上一行重复了 986 次] RecursionError:最大递归深度超出”,这是指我的 create_superuser()
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
看起来你想调用一个重载的函数。
在 Python 中,没有函数重载。 相反,函数可以有一个灵活的签名(可选参数,通过*args
和**kwargs
接收任何参数)。 如果你在同一个作用域中定义了两个同名的函数,那么解释器稍后遇到的函数将简单地替换前者。
因此,您需要使用灵活的签名将两个功能合并为一个。 (没有什么能阻止你拆分辅助函数或任何隐藏的东西,但它们需要有不同的名称)。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.