django rest框架,如何限制用户可以看到的数据列表?
假设你想展示一下django rest框架,如何限制用户可以看到的数据列表?,django,django-rest-framework,Django,Django Rest Framework,假设你想展示一下 所有博客的列表 用户创建的博客列表 如何在django rest框架中实现它们 我要创建两个视图集吗 我是不是也要做两个get_queryset()呢 还是两个权限类 编辑: 您想在最近的选项卡中显示所有博客。 您想在用户的个人资料页面中显示其博客。 您想在热门选项卡中显示热门博客 可能还有更多的博客列表…您似乎只想根据一些给定的参数筛选查询集。您应该看看django过滤器和DRF过滤选项。它们可能是你真正需要的 …/blogs/?owner=1 这将为您提供所有“所有
- 所有博客的列表
- 用户创建的博客列表
- 编辑:
最近的选项卡中显示所有博客。
您想在用户的个人资料
页面中显示其博客。
您想在热门
选项卡中显示热门博客
可能还有更多的博客列表…您似乎只想根据一些给定的参数筛选查询集。您应该看看django过滤器和DRF过滤选项。它们可能是你真正需要的
…/blogs/?owner=1
这将为您提供所有“所有者”字段等于id=1的用户的博客
另一个选项是在视图集中使用@list\u路由装饰器,如下所示:
@list_route
def popular(self, request)
.... # Do stuff
return Response(data, status=status.HTTP_200_OK)
这会将博客路由添加到您的视图集中,并返回您告诉它返回的任何内容。
因此,转到“../blogs/popular/”将返回“data”您应该有两个视图集。其他选项不符合逻辑。这取决于显示其中一个选项的要求。也许某些用例会很好?@ArunGhosh:two viewset表示模型列表的两个url端点?@timop:添加了这些用例。@eugene的另一个选项是将参数传递给单个端点覆盖get_queryset()“popular”到底是什么意思?它是一个字段的值还是根据一些参数或其他东西计算的值?我想../popular\u blogs/可能比../blogs/?mode=popular稍微改变了我的答案。不确定哪一个更适合你