How to get OR permissions instead of AND in REST framework

前端 未结 6 1603
遇见更好的自我
遇见更好的自我 2021-02-05 06:45

It seems that permission classes are ANDed when REST framework checks permissions. That is every permission class needs to return True for permission to be granted. This makes t

6条回答
  •  感动是毒
    2021-02-05 07:17

    You need to build your own custom http://www.django-rest-framework.org/api-guide/permissions/#custom-permissions as described in the docs.

    Something like:

    from rest_framework import permissions
    
    class IsAdminOrStaff(permissions.BasePermission):
        message = 'None of permissions requirements fulfilled.'
    
        def has_permission(self, request, view):
            return request.user.is_admin() or request.user.is_staff()
    

    Then in your view:

    permission_classes = (IsAdminOrStaff,)
    

提交回复
热议问题