Расширение класса в Python-декораторе вызывает рекурсию
Я перезаписываю метод сохраненияModelForm
и я не знаю, почему это вызвало бы рекурсию:
@parsleyfy
class AccountForm(forms.ModelForm):
def save(self, *args, **kwargs):
# some other code...
return super(AccountForm, self).save(*args,**kwargs)
Причины этого:
maximum recursion depth exceeded while calling a Python object
Stacktrace показывает эту строку, повторяя себя:
return super(AccountForm, self).save(*args,**kwargs)
Теперь декоратор петрушки выглядит так:
def parsleyfy(klass):
class ParsleyClass(klass):
# some code here to add more stuff to the class
return ParsleyClass
Как @DanielRoseman предположил, что декоратор Parsley, расширяющийAccountForm
вызываетsuper(AccountForm,self)
продолжать называть себя, каково решение?
Также я не могу понять, почему это может вызвать рекурсию.