如何在APIView中使用对象级别权限?

希望卡格达斯

我有一个权限类,用于检查obj.account是否等于request.user.profile.account:

class IsOwner(permissions.BasePermission):
    def has_object_permission(self, request, view, obj):
        return request.user.profile.account == obj.account

这是我的观点:

class ContactDetailView(APIView):
    permission_classes = (IsOwner, )

    def get(self, request, pk, format=None):
        contact = get_object_or_404(Contact, pk=pk)
        serializer = ContactSerializer(contact)

        return Response(
            serializer.data,
        )

但是我没有权限错误。它将毫无问题地返回联系人数据。

我的错误在哪里?

永远不要走

您需要check_object_permissions在响应之前调用方法:

class ContactDetailView(APIView):
    permission_classes = (IsOwner, )

    def get(self, request, pk, format=None):
        contact = get_object_or_404(Contact, pk=pk)
        serializer = ContactSerializer(contact)
        self.check_object_permissions(request, contact)

        return Response(
            serializer.data,
        )

请注意,通用视图类默认已调用它。但是由于您没有使用RetrieveAPIView,所以需要手动进行操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中使用重新级别

来自分类Dev

如何在MuleESB中使用“权限”

来自分类Dev

如何在APIView中使用两个序列化器?

来自分类Dev

如何使用APIView为每个处理程序功能设置权限?

来自分类Dev

Azure - 如何在订阅级别查找权限?

来自分类Dev

如何在Haskell中使用类型级别键来编译诸如对象之类的异构哈希图?

来自分类Dev

如何在视图中使用MVC角色权限?

来自分类Dev

如何在BigQuery中使用行级权限?

来自分类Dev

如何在js中使用facebook api请求用户权限?

来自分类Dev

如何在Linux中使用ACL设置默认权限?

来自分类Dev

如何在视图中使用MVC角色权限?

来自分类Dev

如何在AEM中使用读取ACL,编辑ACL权限?

来自分类Dev

如何在ReactJS中使用window对象?

来自分类Dev

如何在JavaScript中使用PluginResult对象

来自分类Dev

如何在函数php中使用对象

来自分类Dev

如何在克隆对象中使用参数?

来自分类Dev

如何在PHP中使用类/对象

来自分类Dev

如何在 Django 中使用 Q 对象

来自分类Dev

如何在jquery中使用json对象

来自分类Dev

如何在 Java 中使用对象方法?

来自分类Dev

如何在javascript中使用对象数组

来自分类Dev

如何在 VTK 中使用 vtkInformation 对象?

来自分类Dev

如何在 jQuery 对象中使用“self”?

来自分类Dev

如何在API级别23下检查权限?

来自分类Dev

如何在Sharepoint网站上查看我的权限级别

来自分类Dev

Azure Devops:如何在组织级别设置工作项的权限?

来自分类Dev

Django REST:如何在应用程序级别urls.py中使用Router?

来自分类Dev

如何在Ubuntu中使用GUI设置7z压缩级别?

来自分类Dev

如何在Android 11(Android R或Android API级别30)中使用windowinsetsanimation

Related 相关文章

热门标签

归档