简体   繁体   English

如何继承基于类的视图的DRF权限?

[英]How to inherit permissions on DRF for class based views?

class ViewTwo(APIView):
    permission_classes = (permissions.IsBar,)

class ViewThree(ViewTwo):
    permission_classes = (permissions.IsXYZ,)

How can ViewThree inherit ViewTwo permissions in order to have both permissions.IsBar and permissions.IsXYZ permission classes? ViewThree如何才能继承ViewTwo权限以同时拥有permissions.IsBarpermissions.IsXYZ权限类?

I suppose, you need to implement get_permissions method in ViewThree which instantiates and returns the list of permissions that this view requires: 我想,您需要在ViewThree实现get_permissions方法,该方法实例化并返回此视图所需的权限列表:

class ViewThree(ViewTwo):
    def get_permissions(self):
        return super().get_permissions() + (permissions.IsXYZ,)

Simply define the permissions on ViewThree by appending those from ViewTwo. 只需在ViewThree上追加来自ViewTwo的权限,即可定义这些权限。

class ViewTwo(TemplateView):
    permission_classes = (permissions.IsBar,)

class ViewThree(ViewTwo):
    permission_classes = ViewTwo.permission_classes + (permissions.IsXYZ,)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM