在视图集中创建的Django-rest-framework权限

在视图集中创建的Django-rest-framework权限,第1张

在视图集中创建的Django-rest-framework权限

自定义get_queryset方法:

def get_queryset(self):    if self.request.user.is_superuser:        return User.objects.all()    else:        return User.objects.filter(id=self.request.user.id)

这样,经过身份验证的用户只能检索,修改或删除自己的对象

指定,

permission_classes = (AllowAny,)
以便经过身份验证的用户可以创建一个新用户。

编辑 :评论中的进一步解释

通过这种方式自定义get_queryset方法意味着:

  1. 是的,未经身份验证的用户可以发送GET请求以检索用户列表,但该列表为空,因为返回User.objects.filter(id = self.request.user.id)确保仅返回有关经过身份验证的用户的信息。

  2. 对于其他方法也是如此,如果经过身份验证的用户尝试删除另一个用户对象,则会返回详细信息:未找到(因为它正在尝试访问的用户不在查询集中)。

  3. 经过身份验证的用户可以对用户对象执行任何 *** 作。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5632276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存