class IsLeaderAndOwnerPermission(permissions.BasePermission): def has_object_permission(self, request, view, obj): print(request.user) # if request.method in permissions.SAFE_METHODS: # return True '''判断是否是管理者且管理自己及下属''' # return obj.user == request.user
只有has_permission(self,request,view)方法可以执行,但又怎么判断操作的是自己所属呢?
请注意,通用视图将检查适当的对象级别权限,但是,如果您要编写自己的自定义视图,则需要确保自己检查对象级别权限。您可以通过self.check_object_permissions(request, obj)
在拥有对象实例后从视图中进行调用来实现。APIException
如果任何对象级权限检查失败,则此调用将引发适当的调用,否则将简单地返回。
还要注意,通用视图将仅检查对象级权限以获取检索单个模型实例的视图。如果需要列表视图的对象级过滤,则需要单独过滤查询集。有关更多详细信息,请参见过滤文档。
我明白了,但过滤依然 不懂,付费课程可以学到吗?