Django 序列化程序在对象中发送数组

Posted

技术标签:

【中文标题】Django 序列化程序在对象中发送数组【英文标题】:Django serializer send array in object 【发布时间】:2019-10-20 00:03:27 【问题描述】:

我有这样的模型:

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】:

ListFieldDictField 一起用作child

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

【讨论】:

根据列表中对象的复杂程度,您可能需要设置child=serializers.JSONField

以上是关于Django 序列化程序在对象中发送数组的主要内容,如果未能解决你的问题,请参考以下文章