【问题标题】:How to make Django REST User API with complex permissions如何制作具有复杂权限的 Django REST 用户 API
【发布时间】:2019-05-14 09:26:05
【问题描述】:

我想制作一个具有复杂权限的 Django REST 用户 API,如下所示:

获取

  • 只有管理员才能获取所有用户数据
  • 登录用户应该是获取自己和其他用户的名字

PUT

  • 只有 Admin 和 Self 应该能够 PUT
  • 除了 is_staff 和 is_superuser 之外,只有 is_superuser 应该能够更改用户的状态
  • 用户更改密码需要旧密码
  • 如果用户是 !is_staff 应该可以重置密码

发布/删除

  • 只有管理员才能发布/删除用户
  • 用户应该能够更新自己的个人资料

不幸的是,我不知道如何控制视图或序列化程序以允许此类权限。有没有模板可以让我准确控制权限?

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    您可以根据 DRF docs 编写您的自定义权限。

    并在您的视图中添加YourCustomPermission

    class ExampleView(APIView):
        permission_classes = (YourCustomPermission,)
    

    【讨论】:

    • 感谢您的快速回答。根据您的提示,我找到了 stackoverflow.com/questions/19313314/… 一个非常有用的帖子,我可以熟练地满足我的需求。
    • 如果我的帖子对您​​有帮助,您能否将其标记为解决方案。祝你好运!
    猜你喜欢
    • 2020-10-10
    • 2021-01-02
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多