我有一个基于Django REST framework的API的Django项目。
最近,我使用django-guardian启用了对象级权限。但是我还没有在我的项目中使用model-level permissions framework(直到这一刻我没有看到任何目的。)
现在,当我在API视图集中打开DjangoObjectPermissions时,
class PhotoViewSet(viewsets.ModelViewSet)
permission_classes = (permissions.DjangoObjectPermissions,)
并向端点发出更新请求,以获取具有正确"更改"的对象。来自Guardian框架的许可,我得到了403 FORBIDDEN
回复。
此回复的原因似乎在于request dispatch stage:
DjangoObjectPermissions
继承自DjangoModelPermissions
。DjangoObjectPermissions.has_permission()
has_permission()
失败,因为我没有使用模型级权限。在我的案例中使用DjangoObjectPermissions
的正确方法是什么?
DjangoObjectPermissions
继承并覆盖has_permission()
。