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】:将ListField
与DictField
一起用作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 序列化程序在对象中发送数组的主要内容,如果未能解决你的问题,请参考以下文章
序列化多个模型并在一个 json 响应中发送全部 django rest 框架
使用 Django REST 框架序列化程序将 JSON 请求保存到数据库
从 django rest 框架中的序列化程序发送自定义错误响应?
如何在 Django Rest Framework 的 REST API 中为数组数据编写序列化程序?