是否有为给定APIView
或ViewSet
的每个操作分配不同权限的最佳实践?
假设我定义了一些权限类,比如"IsAdmin"、"IsRole1"、"IsRole2"...,我想为单个操作授予不同的权限(例如,拥有Role1的用户可以创建或检索,拥有Role2的用户可以更新,只有管理员可以删除).
如何构建基于类的视图,以便将权限类分配给"创建"、"列表"、"检索"、"更新"和"删除"操作? 我正在try 这样做,以便拥有一个可以在具有相同权限模式的不同表中重用的类.
是否有为给定APIView
或ViewSet
的每个操作分配不同权限的最佳实践?
假设我定义了一些权限类,比如"IsAdmin"、"IsRole1"、"IsRole2"...,我想为单个操作授予不同的权限(例如,拥有Role1的用户可以创建或检索,拥有Role2的用户可以更新,只有管理员可以删除).
如何构建基于类的视图,以便将权限类分配给"创建"、"列表"、"检索"、"更新"和"删除"操作? 我正在try 这样做,以便拥有一个可以在具有相同权限模式的不同表中重用的类.
您可以创建custom permission class个扩展DRF的BasePermission
.
您可以实现has_permission
,其中您可以访问request
和view
对象.您可以判断request.user
中是否有合适的角色,并根据需要返回True
/False
.
看看提供的IsAuthenticatedOrReadOnly个类(和其他类),可以很好地说明它是多么简单.
我希望这能有所帮助.