【发布时间】:2016-03-01 15:26:00
【问题描述】:
我正在研究如何将序列化程序合并或相互嵌套。在这个例子中,我有一个列模型(由Column 类组成)和属于列模型的数据(由Data class 组成)。我的问题是我不知道如何从另一个序列化程序类调用 ModelSerializer 并传递参数(结果始终为空)。
如果我的模型在这种情况下是正确的,您能否建议我,以及如何创建所需的 JSON,以便结果重用现有的序列化程序并避免重复任何数据?
注意:在最好的情况下,数据属性应该相互依赖,这样只有那些定义为列的数据才会被序列化。
models.py
class Column(models.Model):
data = models.CharField(max_length=200)
title = models.CharField(max_length=200)
def __str__(self):
return self.order
class Data(models.Model):
doc = models.CharField(max_length=200)
order = models.CharField(max_length=200)
nothing = models.CharField(max_length=200)
def __str__(self):
return self.order
期望的输出:
{
"columns": [
{
"data": "doc",
"title": "Doc."
},
{
"data": "order",
"title": "Order no."
},
{
"data": "nothing",
"title": "Nothing"
}
],
"data": [
{
"doc": "564251422",
"nothing": 0.0,
"order": "56421"
},
{
"doc": "546546545",
"nothing": 0.0,
"order": "98745"
}
]
}
但是使用 ModelSerializer 的结果是这样的:
[
{
"doc": "564251422",
"order": "56421",
"nothing": "0.0"
},
{
"doc": "546546545",
"order": "98745",
"nothing": "0.0"
}
]
【问题讨论】:
标签: json django django-models django-rest-framework django-serializer