【发布时间】:2020-09-08 07:56:59
【问题描述】:
我正在尝试实现对象级权限。运行代码时,我收到一条错误消息,提示我使用了太多位置参数。
TypeError: has_object_permission() takes 3 positional arguments but 4 were given
但是,当我查看 Django Rest 框架的文档时,也使用了四个参数。
class PostOwnerPermssion(permissions.BasePermission):
"""
Check if authenticated user is story author
"""
def has_object_permission(self,request,obj,**kwargs):
if request.user.id == story.author:
return True
return False
我很高兴得到任何澄清。
谢谢。
【问题讨论】:
-
不,那些是named参数:
kwargs被命名了,所以name=value,如果你用obj.has_object_permission(foo, bar, qux)调用它就会出错。 -
你能显示完整的回溯吗?
-
向我们展示您拨打的电话给
has_object_permission()。
标签: python django django-rest-framework permissions