django-rest-framework :设置每个用户权限
django-rest-framework : setting per user permissions
我使用 DRF 3.0.1 创建了 REST api。如果我使用权限 class rest_framework.permissions.IsAuthenticated
,任何经过身份验证的用户都可以为任何用户执行 GET、POST 等操作,只要他有有效令牌。
我想设置每个用户的权限,因为管理员用户可以查看和更新所有用户的数据,但任何非管理员用户应该只能查看和更新他的数据。
从我目前看到的例子来看,rest_framework.permissions.DjangoObjectPermissions
似乎是我需要使用的class。但是,示例使用 Class 基于视图。
我在我的代码中使用了基于函数的视图。是否可以使用基于函数的视图来实现它?按照 DRF doc 中的建议执行 queryset = <Model>.objects.non()
没有帮助。它抱怨 Cannot apply DjangoModelPermissions on a view that does not have .model or .queryset property.
有没有一种方法可以在不从 FBV 转移到 CBV 的情况下做到这一点?
您正在使用 api_view
DRF 装饰器吗?
如果是这样,您可能会发现 rest_framework.decorators.permission_classes
有用。
@permission_classes([SomePermission])
我使用 DRF 3.0.1 创建了 REST api。如果我使用权限 class rest_framework.permissions.IsAuthenticated
,任何经过身份验证的用户都可以为任何用户执行 GET、POST 等操作,只要他有有效令牌。
我想设置每个用户的权限,因为管理员用户可以查看和更新所有用户的数据,但任何非管理员用户应该只能查看和更新他的数据。
从我目前看到的例子来看,rest_framework.permissions.DjangoObjectPermissions
似乎是我需要使用的class。但是,示例使用 Class 基于视图。
我在我的代码中使用了基于函数的视图。是否可以使用基于函数的视图来实现它?按照 DRF doc 中的建议执行 queryset = <Model>.objects.non()
没有帮助。它抱怨 Cannot apply DjangoModelPermissions on a view that does not have .model or .queryset property.
有没有一种方法可以在不从 FBV 转移到 CBV 的情况下做到这一点?
您正在使用 api_view
DRF 装饰器吗?
如果是这样,您可能会发现 rest_framework.decorators.permission_classes
有用。
@permission_classes([SomePermission])