[英]"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.