在django restful api中返回记录数

时间:2018-01-24 17:01:55

标签: django rest api paginator

我有一个非常复杂的API,可以通过POST请求接受不同的过滤字段。结果是数据库中的项目列表。如果用户没有过滤好的话,总结果集可以是数千个项目。

API将只返回30个项目,但我想添加满足搜索条件的项目总数。我知道我可以在Serializer类中添加一个自定义字段来返回计数,但我不知道如何访问查询集以查询count()。

我确信有一个简单的解决方案,我缺少这个

由于 Eyal

1 个答案:

答案 0 :(得分:0)

我让这个工作,但解决方案是丑陋的,我不能相信在框架中没有本机支持。我一定错过了什么

#querysey has several filters set till now
#save the querysey
queryset_orig = queryset
#add limits
queryset = queryset.filter()[:30]    

serializer = ItemsSerializer(queryset, many=True)

#add total count to the first items only
serializer.data[0]. update ({'count':queryset_orig.count()})