【发布时间】:2020-04-01 16:28:31
【问题描述】:
我有一个任务,我需要在这里返回这个json对象:
{
"id": "99999999",
"point": "11111111",
"name": "some name",
"quantity": {
"needed": "10",
"done": "2",
},
}
我必须将quantity 字段作为子对象,但在Django 模型中quantity_needed 和quantity_done 不能是子对象。代码如下:
# model.py
class NeedModel(models.Model):
article = models.ForeignKey(ArticleModel, on_delete=models.CASCADE)
point = models.ForeignKey(PointModel, verbose_name="Hospital", on_delete=models.CASCADE)
quantity_needed = models.PositiveIntegerField(default=0)
quantity_done = models.PositiveIntegerField(default=0)
我尝试使用 to_representation 方法更改此设置,我的代码如下所示:
# serializer.py
class NeedsSerializer(ModelSerializer):
class Meta:
model = NeedModel
fields = ('id', 'point')
def to_representation(self, instance):
data = super(NeedsSerializer, self).to_representation(instance)
data['name'] = instance.article.name
data['quantity'] = {
'needed': instance.quantity_needed,
'done': instance.quantity_done,
},
return data
但结果是,我得到了一个 quantity 字段,其中包含一个包含该对象的列表。如何摆脱这个列表?
{
"id": 6,
"point": 4,
"name": "Бинт гіпсовий 20см х2,7м",
"quantity": [
{
"needed": 12,
"done": 0
}
],
},
【问题讨论】:
标签: python json django django-rest-framework serialization