如何解决为整个结果集向Django Rest Framework结果添加额外的数据
由于您似乎正在使用Rest框架中的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 。我真的不知道这是否是正确的方法,但这是一个快速解决方案。
希望能帮助到你!
解决方法
我正在使用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,"results": [
{...}
]
}
在此示例中,额外计数仅是多少个对象的视场距离值小于键中描述的英里数。
我的问题是我不知道扩展和插入此行为的最佳位置在哪里。
理想情况下,无论结果是否分页,我都希望此方法可以工作,无需做任何假设。
我真正要追求的是朝着正确的方向点头(以及为什么这是正确的选择)。
我检查了文档,找不到任何描述如何添加类似内容的内容,但我很乐意在该分数上被证明是错误的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。