您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

在视图集中创建的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方法意味着:

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

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

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

Go 2022/1/1 18:37:57 有335人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶