【问题标题】:Django REST Framework consolidate responseDjango REST Framework 整合响应
【发布时间】:2014-03-11 19:27:22
【问题描述】:

我正在使用 Django REST 框架,并且在单个响应中想要返回一个数组对象以及一个“合并”对象。 “合并”对象将在运行时通过将每个项目的属性值相加来填充。

此响应数据说明了我在寻找什么。

{
    "foods": [
        {
            "name": "Apple",
            "calories": 116,
            "sugars": 23.2
        },
        {
            "name": "Orange",
            "calories": 62,
            "sugars": 12.2
        }
    ],
    "consolodated": {
        "calories": 178,
        "sugars": 35.4
    }
}

返回“foods”数组很简单,但我不知道如何在运行时创建“合并”对象。由于我没有序列化模型,因此该动态对象创建是否应该位于视图中?如果是这样,我应该采取什么方法来迭代现有值以创建新对象?提前致谢。

【问题讨论】:

  • 您是否研究过pre_save() 方法?你可以序列化你的食物对象然后在pre_save()设置serializer.data[consolidated] = {"calories": 178,"sugars": 35.4}
  • 谢谢,但现在我正在运行时创建“合并”。如果我想在将来存储它,我会考虑使用 pre_save()

标签: python django django-rest-framework


【解决方案1】:

你会想要一个Doc link: "Serializer Method Field" 这将让您从提供“合并”元素的方法中创建一个字段。

【讨论】:

    猜你喜欢
    • 2013-04-09
    • 2018-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    • 2021-04-15
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多