У меня есть задача, мне нужно вернуть этот 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
}
],
},