Сериализатор Django отправляет массив в объект - PullRequest
1 голос
/ 04 июня 2019

У меня есть такие модели:

class Model1(models.Model):
    time = models.DateTimeField(auto_now=True)

class Model2(models.Model):

    model1= models.ForeignKey(Model1, on_delete=models.CASCADE, related_name="my_list")
    f1 = models.FloatField()

Я хочу создать конечную точку для отправки данных следующим образом:

{"time": "123", "my_list": [{"f1": "123"}, {"f1": "123"}, {"f1": "123"}]}

Это мой сериализатор

class TestSerializer(serializers.ModelSerializer):


 class Meta:
        model = Model1
        fields = ('id',
                  'time',
                  'my_list',)

Как я могу отправить JSON, как я хочу?(

{"time":"123", "my_list":[{"f1":"123"}, {"f1":"123"}, {"f1":"123"}]}

)

1 Ответ

2 голосов
/ 04 июня 2019

Используйте ListField вместе с DictField как child

class TestSerializer(serializers.ModelSerializer):
    <b>my_list = serializers.ListField(child=serializers.DictField())</b>
    class Meta:
        model = Model1
        fields = ('id', 'time', 'my_list',)
...