根据用户ID /令牌限制api GET请求 - Django Rest Framework

时间:2018-05-07 16:35:24

标签: django-rest-framework django-rest-auth

我想通过REST返回链接到我的数据库中的用户的文件列表。

例如,返回id为1到的用户的响应:

http://localhost:8000/api/files/1/ - > {“file info 1”,“file info 2”,...}

但是,我想要确保的是其他用户无法访问上述信息,因为他们的ID不是1,即如果另一个用户的id为2,则上述URL应该以Permission Denied响应。

我知道DRF具有IsAuthenticated权限,但是这使得所有登录用户都可以访问其他用户的文件信息。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

如果您使用的是DRF通用详细信息视图,则可以覆盖get_object()并在此处添加检查

def get_object(self):
    user = super(ViewClassName, self).get_object()
    if self.request.user != user:
        raise PermissionDenied
    return user

答案 1 :(得分:0)

DRF View具有“permission_classes”属性。最好将此请求作为权限进行阻止。