如何为Serializer分页查询集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为Serializer分页查询集相关的知识,希望对你有一定的参考价值。

我正在检索qazxsw poi及其qazxsw poi列表。我的问题是有太多的Category属于outfits

outfits

我们可以对它进行分页,以便用户可以首先看到24个category并刷新以查看其余的class CategoryListAPIView(generics.RetrieveAPIView): serializer_class = CategoryDetailSerializer ... class CategoryDetailSerializer(serializers.ModelSerializer): outfits = serializers.SerializerMethodField() ... class Meta: model = Category fields = ( ... 'outfits', ... ) def get_outfits(self, obj): //This is returning 39 items. // Can we paginate this? if obj.outfits is not None: return OutfitListSerializer(obj.outfits, many=True).data return None 吗?

答案

如果你想要简单的条件“前24”和“其余”。您可以通过获取参数来控制它。

outfits

现在你可以使用GET outfits作为前24套服装的类别和GET def get_outfits(self, obj): show_all = self.request.GET.get('show_all') if show_all: outfits = obj.outfits.all() else: outfits = obj.outfits.all()[:24] return OutfitListSerializer(outfits, many=True).data 进行全面展示

以上是关于如何为Serializer分页查询集的主要内容,如果未能解决你的问题,请参考以下文章

Solr Highlighting:如何为同一字段请求多个片段长度?

如何为 GraphQLObjectType 的 GraphQLList 定义 Relay 片段?

如何为 Datatable 获取正确的查询集

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

Django - 如何为字段组合与查询集仅获取 2 个对象

Django在一页中合并查询集