Django rest framework django rest框架:设置每个用户的权限

Django rest framework django rest框架:设置每个用户的权限,django-rest-framework,Django Rest Framework,我使用DRF3.0.1创建了RESTAPI。如果我使用权限类rest\u framework.permissions.IsAuthenticated,任何经过身份验证的用户都可以为任何用户执行GET、POST等操作,只要他拥有有效的令牌 我想设置每个用户的权限,管理员用户可以查看和更新所有用户的数据,但任何非管理员用户只能查看和更新其数据 从到目前为止我所看到的示例来看,我需要使用的类似乎是rest\u framework.permissions.djangObjectPermissions。但

我使用DRF3.0.1创建了RESTAPI。如果我使用权限类rest\u framework.permissions.IsAuthenticated,任何经过身份验证的用户都可以为任何用户执行GET、POST等操作,只要他拥有有效的令牌

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

从到目前为止我所看到的示例来看,我需要使用的类似乎是rest\u framework.permissions.djangObjectPermissions。但是,这些示例使用基于类的视图

我在代码中使用了基于函数的视图。是否可以使用基于函数的视图实现此功能?按照中的建议执行
queryset=.objects.non()
,没有任何帮助。它抱怨
无法对没有.model或.queryset属性的视图应用djangomodel权限。


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

您是否使用了DRF的
api\u视图
装饰器

如果是这样,您可能会发现
rest\u framework.decorators.permission\u类
非常有用


@permission\u类([SomePermission])

完美!我花了一段时间才明白,但真的很神奇。非常感谢。