【问题标题】:django-rest-framework : setting per user permissionsdjango-rest-framework:设置每个用户的权限
【发布时间】:2015-05-18 07:51:03
【问题描述】:

我使用 DRF 3.0.1 创建了 REST api。如果我使用权限类rest_framework.permissions.IsAuthenticated,任何经过身份验证的用户都可以为任何用户执行 GET、POST 等操作,只要他拥有有效的令牌。

我想设置每个用户的权限,因为管理员用户可以查看和更新​​所有用户的数据,但任何非管理员用户应该只能查看和更新​​他的数据。

从我目前看到的例子来看,似乎 rest_framework.permissions.DjangoObjectPermissions 是我需要使用的类。但是,这些示例使用基于类的视图。

我在我的代码中使用了基于函数的视图。是否可以使用基于函数的视图来实现这一点?按照DRF doc 中的建议执行queryset = <Model>.objects.non() 无济于事。它抱怨Cannot apply DjangoModelPermissions on a view that does not have .model or .queryset property.

有没有一种方法可以在不从 FBV 转移到 CBV 的情况下做到这一点?

【问题讨论】:

    标签: django-rest-framework


    【解决方案1】:

    你在用api_view DRF 的装饰器吗?

    如果是这样,您可能会发现 rest_framework.decorators.permission_classes 很有用。

    @permission_classes([SomePermission])

    【讨论】:

    • 完美!我花了一段时间才理解许可,但这真的很棒。谢谢!
    猜你喜欢
    • 2016-04-04
    • 2022-11-05
    • 2017-05-04
    • 2013-11-15
    • 1970-01-01
    • 2013-10-19
    • 1970-01-01
    • 2014-07-06
    • 2019-11-25
    相关资源
    最近更新 更多