是否有最佳做法,为给定APIView或的每个操作分配不同的权限ViewSet?
APIView
ViewSet
假设我定义了一些权限类,例如“ IsAdmin”,“ IsRole1”,“ IsRole2”,…,并且我想为单个操作授予不同的权限(例如,具有Role1的用户可以创建或检索,具有Role2可以更新,只有管理员可以删除)。
如何构造基于类的视图,以便将权限类分配给“创建”,“列表”,“检索”,“更新”,“删除”操作?我正在尝试这样做,以便拥有一个可以在具有相同权限模式的不同表中重用的类。
也许我只是被一英寸的水淹死了,谢谢您的答复。
您可以创建扩展DRF的自定义权限类BasePermission。
BasePermission
您可以实现has_permission,你可以访问request和view对象。您可以检查request.user适当的角色并根据需要返回True/ False。
has_permission
request
view
request.user
True
False
看一下提供的IsAuthenticatedOrReadOnly类(和其他类),以了解它有多么简单。
希望对您有所帮助。