我正在尝试使用我自己的'snAccount'类扩展名为'Account'(来自django-user-accounts app)的类,因为我需要为每个用户帐户添加一些额外的字段。当我尝试用我的方法覆盖父类的“工厂”方法(@classmethod)时出现问题:
# Original method
@classmethod
def create(cls, request=None, **kwargs):
...
...
# Override attempt
@classmethod
def create(cls, request=None, **kwargs):
create_email = kwargs.pop("create_email", True)
user = kwargs.pop("user", None)
acc = Account.create(request, user, create_email)
x_account = cls(account, **kwargs)
x_account.save()
return x_account
我遇到的问题是以下异常:
Django Version: 1.4.5
Exception Type: TypeError
Exception Value: create() takes at most 2 arguments (4 given)
Exception Location: /home/.../WebServices/models.py in create, line 27
...我无法理解,因为该方法的定义另外需要2个隐式参数和** kwargs。我究竟做错了什么?我对Python没有太多经验,你可能会看到......
答案 0 :(得分:3)
您实际上并未使用任何关键字参数。
acc = Account.create(request, user=user, create_email=create_email)