【发布时间】:2014-06-26 13:25:14
【问题描述】:
我有一个 ModelViewSet 和 ModelSerializer Foo。 ViewSet 中的get_queryset 方法按用户过滤结果(即,当用户从foo/ 中GET 时,用户只能看到他们拥有的Foo 对象)。我试图了解 DRF 如何阻止用户访问您不希望他们访问的对象或通过他们的 ID 修改特定对象(如foo/123/)。
在foo/123/ 的情况下,我注意到get_queryset 也被GET 调用。那么在检索单个对象之前,结果是否首先由get_queryset 剔除?我没有假设,而是为我的 api 中的每个对象定义了自定义权限并覆盖了has_object_permission,假设这是防止用户无权访问和操作对象的方法。但是我可以仅依靠get_queryset 中的过滤来确保这一点吗?
【问题讨论】:
标签: django django-rest-framework