django rest框架,如何限制用户可以看到的数据列表?

时间:2014-10-01 13:11:31

标签: django django-rest-framework

假设您要显示

  • 所有博客列表
  • 用户创建的博客列表

如何在django-rest-framework中实现它们?

我制作两个视图吗?

我是否以某种方式制作了两个get_querysets()?

还是两个权限类?

  • 编辑:

您想在recent标签中显示所有博客 您想在他的profile页面中显示用户的博客 您想在popular标签中显示热门博客。

还有更多的博客列表......

1 个答案:

答案 0 :(得分:1)

您似乎只想根据一些给定的参数过滤查询集。您应该查看django-filter和DRF过滤选项。它们可能是你真正需要的。 Filtering

  

... /博客/?所有者= 1

这将为您提供所有拥有"所有者"的博客。字段等于具有id == 1

的用户

另一个选择是在你的视图集中使用@list_route装饰器,如下所示:

@list_route
def popular(self, request)
   .... # Do stuff
   return Response(data, status=status.HTTP_200_OK)

这将为您的视图集添加一个博客路径,并返回您告诉它返回的任何内容。 所以去' ../博客/热门/'将返回'数据'