如何使Django REST用户API具有复杂的权限



我想制作一个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,)

最新更新