我想制作一个Django REST用户API,它具有复杂的权限,如下所示:
获取
- 只有管理员才能获取所有用户数据
- 登录用户应获取自己和其他用户的姓名
PUT
- 只有Admin和Self才能PUT
- 除了is_staff和is_superuser之外,只有is_super用户才能更改用户的状态
- 用户更改密码时应使用旧密码
- 如果用户是!应该可以重置is_staff密码
POST/DELETE
- 只有管理员才能POST/DELETE用户
- 用户应该能够更新自己的个人资料
不幸的是,我不知道如何控制视图或序列化程序以允许这样的权限。有没有一个模板可以让我准确地控制权限?
您可以根据DRF文档编写自定义权限。
并在您的视图中添加YourCustomPermission
:
class ExampleView(APIView):
permission_classes = (YourCustomPermission,)