使用 django-rest-framework 设置对象级权限

2024-05-23

尝试使用 django-rest-framework 最干净、最规范地管理 django-guardian 对象级权限。

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

我的基于阶级的观点:

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 文档 http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/#associating-snippets-with-users,我超载了perform_create为了将用户传递给序列化器。

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


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 django-rest-framework 设置对象级权限 的相关文章

随机推荐