我正在弄清楚如何将序列化程序合并或嵌套到彼此中。在这个例子中,我有一个列模型(由Column
类组成)和属于列模型的数据(由 组成Data class
)。我的问题是我不知道如何从另一个序列化程序类调用 ModelSerializer 并传递参数(结果始终为空)。
如果我的模型在这种情况下是正确的,以及如何创建所需的 JSON,以便结果重用现有的序列化程序并避免重复任何数据,你能告诉我吗?
注意:在最好的情况下,数据属性应该相互依赖,以便只有那些定义为列的数据才能被序列化。
模型.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"
}
]