Django REST框架:直接显示在GenericView中的结果列表中

时间:2014-03-18 15:35:16

标签: android json django rest django-rest-framework

我正在使用djangorestframework来管理将Android移动应用程序连接到我的Django Web应用程序的REST API。我有一个对象列表,我需要通过REST API从Web应用程序检索,到目前为止,通用ListCreateAPIView工作正常。

但是,REST API返回的内容并不完全是列表/数组本身,而是包含元数据和实际results列表的JSON对象。这是所述输出的一个例子:

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "foo":"bar"
        }
    ]
}

问题是,我的移动应用程序的REST客户端需要一个JSON列表/数组,而不是上面的JSON对象。有没有办法让我的通用视图删除countnextprevious元数据,只输出results列表本身?我需要一个如下输出:

[
    {"foo":"bar"},
    {"foo":"something"},
    {"foo":"another"}
]

哦,我不确定这是否有用,但我使用Retrofit作为我的Android应用程序的REST客户端,它应该连接到我的Web应用程序的REST API。

1 个答案:

答案 0 :(得分:2)

包装数组的这个对象是由queryset paginator生成的。如果禁用分页,您将获得该数组。要停用分页,请将paginate_by设置为None

class PaginatedListView(ListAPIView):
    queryset = ExampleModel.objects.all()
    serializer_class = ExampleModelSerializer
    paginate_by = None