【问题标题】:returning record count in django restful api在 django restful api 中返回记录数
【发布时间】:2018-01-24 17:01:54
【问题描述】:

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

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

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

谢谢 埃亚尔

【问题讨论】:

    标签: django rest api paginator


    【解决方案1】:

    我得到了这个工作,但解决方案很丑陋,我不敢相信框架中没有对此的本地支持。我一定是错过了什么

    #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()})
    

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 1970-01-01
      • 2020-09-02
      相关资源
      最近更新 更多