我正在使用Django睡觉框架,需要向结果集添加额外数据.具体地说,您通常会有以下情况:

{
    "count": 45, 
    "next": "http://localhost:8000/foo/bar?page=2", 
    "previous": null, 
    "results": [
        {...}
    ]
}

我想添加额外的计数,如下所示:

{
    "count": 45,
    "10_mi_count": 10,
    "20_mi_count": 30,
    "30_mi_count": 45,
    "next": "http://localhost:8000/foo/bar?page=2", 
    "previous": null, 
    "results": [
        {...}
    ]
}

在本例中,额外的计数只是有多少对象的场距离值小于关键帧中描述的英里数.

我的问题是,我不知道扩展和插入这种行为的最佳位置是哪里.

理想情况下,无论结果是否分页,我都希望它能够工作,不做任何假设.

我在这里真正想要的是向正确的方向点头(以及为什么那是正确的地方).

我已经判断了文档,但找不到任何描述如何添加此类内容的内容,但如果在这一点上被证明是错误的,我会非常高兴.

推荐答案

由于您似乎使用的是睡觉框架中的一个ListView,因此可以覆盖类中的list()方法并对结果数据设置新值,如下所示:

    def list(self, request, *args, **kwargs):
        response = super().list(request, args, kwargs)
        # Add data to response.data Example for your object:
        response.data['10_mi_count'] = 10 # Or wherever you get this values from
        response.data['20_mi_count'] = 30
        response.data['30_mi_count'] = 45
        return response

请注意,您的类必须直接从Rest框架API(http://www.django-rest-framework.org/api-guide/generic-views#listmodelmixin)继承ListModelMixin,或通过GenericView继承.我真的不知道这是不是正确的方法,但这是一个快速修复.

希望有帮助!

Django相关问答推荐

Django相关对象引用模板

Django迁移嵌套模型时出错,不带迁移基本模型

无法在 docker 启动Django项目

django优化查询

APIView查询未返回任何结果

Django:添加第二个';详细';用于检索额外信息的视图

Django rest framework, AttributeError: 'str' object has no attribute 'data' 无法使用表单上传图片

CsrfViewMiddleware 和 enforce_csrf 有什么区别?

带有代码完成功能的 python / django 的 Sublime Text 2 和 3 设置

Django REST Framework - 将额外参数传递给操作

获取 Django 中的缓存键列表

django excel xlwt

如何使用 SQL 的IN等字段上的数组过滤 django 查询集?

Python 社区里的小马是怎么回事?

现在如何在 Django 中处理每个对象的权限?

Django将HttpResponseRedirect返回到带有参数的url

在 django admin 中链接到外键对象

模型表格Save保存,Get获取保存的对象

django/文件上传权限

Django 1.7 迁移不会重新创建删除的表,为什么?