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

Posted

技术标签:

【中文标题】Django REST Framework:直接显示在 GenericView 的结果列表中【英文标题】:Django REST Framework: Directly display on results list in GenericView 【发布时间】:2014-04-24 09:47:18 【问题描述】:

我正在使用djangorestframework 管理一个 REST API,它将 android 移动应用程序连接到我的 Django Web 应用程序。我有一个需要通过 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 客户端,它应该连接到我的网络应用程序的 REST API。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Django REST Framework:直接显示在 GenericView 的结果列表中的主要内容,如果未能解决你的问题,请参考以下文章

怎么安装django rest framework

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

在 django-rest-framework 中插入 django-allauth 作为端点

Django rest framework ---认证

Django REST Framework -- REST API 报错:403

使用 Django REST Framework 作为 Django 的身份验证后端