首页 > 解决方案 > Django 序列化程序在对象中发送数组

问题描述

我有这样的模型:

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"}]}

)

标签: pythondjangomodeldjango-rest-frameworkserialization

解决方案


ListFieldDictFieldas一起使用child

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

推荐阅读