gpt4 book ai didi

python - 为整个结果集向 Django Rest Framework 结果添加额外数据

转载 作者:IT老高 更新时间:2023-10-28 20:21:10 25 4
gpt4 key购买 nike

我正在使用 Django Rest Framework,需要向结果集中添加额外的数据。具体来说,您通常会在哪里:

{
"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": [
{...}
]
}

此示例中的额外计数只是有多少对象的场距离值小于键中描述的英里数。

我的问题是我不知道扩展和插入此行为的最佳位置在哪里。

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

我真正追求的是向正确的方向点头(以及为什么这是正确的去处)。

我检查了文档,找不到任何描述如何添加此类内容的内容,但我很乐意在这方面被证明是错误的。

最佳答案

由于您似乎使用的是来自 Rest Framework 的 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 Framework API ( http://www.django-rest-framework.org/api-guide/generic-views#listmodelmixin ) 的 GenericView 继承 ListModelMixin。我真的不知道这是否是正确的方法,但它是一个快速修复。

希望对你有帮助!

关于python - 为整个结果集向 Django Rest Framework 结果添加额外数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com