我想通过REST返回链接到我的数据库中的用户的文件列表。
例如,返回id为1到的用户的响应:
http://localhost:8000/api/files/1/ - > {“file info 1”,“file info 2”,...}
但是,我想要确保的是其他用户无法访问上述信息,因为他们的ID不是1,即如果另一个用户的id为2,则上述URL应该以Permission Denied响应。
我知道DRF具有IsAuthenticated权限,但是这使得所有登录用户都可以访问其他用户的文件信息。
实现这一目标的最佳方法是什么?
答案 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”属性。最好将此请求作为权限进行阻止。