【发布时间】:2016-04-25 15:35:32
【问题描述】:
在使用ModelViewSet 时,使用 Django REST 框架是否可以仅过滤列表结果而不过滤详细结果?
我有一个拥有所有者的对象列表,我只希望用户在访问对象列表时看到他们拥有的对象。为此,我实现了一个基于rest_framework.filters.BaseFilterBackend 的新过滤器后端,它适用于列表。
当我尝试访问不属于我的用户的对象时出现问题:我得到“404 未找到”而不是“403 禁止”。
换句话说,过滤似乎不仅适用于列表,还适用于详细视图。有没有办法改变这一点,以便在访问我无权查看的对象时得到预期的 403?
我已经有一个权限类,它可以防止用户看到他不拥有的对象,但它甚至不会被调用,除非我注释掉视图集类上的 filter_backends 属性。
另一种思考方式是,我只想列出用户有权查看的对象。
【问题讨论】:
标签: python django rest django-rest-framework