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 对象。有没有办法让我的通用视图删除count
、next
和previous
元数据并只输出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:直接显示在 GenericView 的结果列表中
在 django-rest-framework 中插入 django-allauth 作为端点