我正在使用双星仍然继续为此代码说save_model() takes exactly 5 arguments (6 given)
或save_model() takes exactly 3 arguments (6 given)
:
class ArticleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, *kwwargs):
if request.user.is_superuser or request.user==obj.author:
super(ArticleAdmin,self).save_model(self, request, obj, *kwwargs)
else:
raise ValidationError("author must be you")
我做错了什么?
答案 0 :(得分:0)
调用超类方法时,不要传递self
参数。所以,它将是:
super(ArticleAdmin, self).save_model(request, obj, **kwargs)
你有一个拼写错误,它假设是
kwargs
而不是kkwargs
在
kwargs
中,您通常使用双星号**kwargs
而不是单个星号。这包括函数定义中的那些。def save_model(self, request, obj, **kwargs):
单个星号用于*args
。 kwargs代表关键字参数。在python 3中,你只需要使用
super().save_model(request, obj, **kwargs)