def get_permissions(self):
if self.action in ['create', 'list', 'retrieve']:
# Add or View records if you are logged in
return (permissions.IsAuthenticated(),)
else:
# Delete or update records if you are logged in and added the record
return (permissions.IsAuthenticated(), IsOwner(),)
1条答案
按热度按时间mtb9vblg1#
您可以根据正在执行的操作覆盖视图中的
get_permissions
类,也可以添加自己的权限,这里是一个使用ModeViewSet的示例。IsOwner来自www.example.com中的自定义权限类permissions.py,如下所示:
这个示例自定义类检查登录的用户是否是创建记录的用户,假设在notebook模型中有一个用户pk。
同样在用户模型中,您可以为允许查看记录的用户设置
is_staff=True
和userpermissions.IsAdminUser
,或者基于某些用户类型创建自定义权限类。