如何为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 片段?