1

尝试使用 django-rest-framework 以最干净和规范的方式管理 django-guardian 对象级权限。

我想在执行 POST 时将对象的读取权限(module.view_object)分配给发出请求的用户。

我基于班级的观点:

class ObjectList(ListCreateAPIView):
  queryset = Object.objects.all()
  serializer_class = ObjectSerializer
  filter_backends = (DjangoObjectPermissionsFilter,)
  # MyObjectPermissions inherit from DjangoObjectPermissions and just 
  # add the 'view_model' permission
  permission_classes = (MyObjectPermissions,)

  def perform_create(self, serializer):
    serializer.save(owner=self.request.user)

django-rest-framework 文档中所述,我已经重载perform_create以将用户传递给序列化程序。

但是如何在序列化程序中分配权限(使用 Guardian.shortcuts.assign_perm)。save除了重写手动分配权限的方法之外,没有其他方法吗?难道没有某种标准机制来管理像这样的常见行为吗?

4

1 回答 1

3

perform_create()您可以在 的方法中分配权限ViewSet

于 2017-01-19T15:07:03.263 回答