python-3.x - DRF如何在同一个序列化器中返回多个数据
问题描述
我会尽量让我的问题尽可能简单:
我有这个序列化程序:
class DatesSerializer(serializers.Serializer):
date = serializers.CharField(max_length=10)
... bunch of stuff and Others serializers
在我的 view.py 上,我有这段代码:
dates = ["2021-05-02", "2021-06-28", "2021-07-02"]
...
for date in dates:
faults = DatesSerializer({
"date":date,
...
})
return Response({"faults":faults.data, status=200})
我收到这样的回复:
{
"faults":{
"date":"2021-07-02"
....
}
}
我想要的是这样的回应
{
"faults":{
"date":"2021-07-02"
....
},
{
"date":"2021-06-28"
....
}, {
"date":"2021-05-02"
....
}
}
我知道在我的循环中我正在覆盖我的序列化程序,这就是为什么我只有最后一个条目,但我试图通过添加一个 dict 来克服这个问题,但因为密钥总是相同的,所以我没有坚持如何解决这个问题
解决方案
你想要的不是一个有效的对象。您需要一个列表,这可以通过在每次迭代中附加序列化程序数据在循环中轻松完成。
res = []
for date in dates:
serializer = DatesSerializer({
"date":date,
...
})
res.append(serializer.data)
return Response({ "faults": res }, status=200)
推荐阅读
- ansible - 覆盖特定角色的 Ansible 主机
- google-chrome - Chrome 以后会支持 CCID USB 设备吗
- python - 在 django 中操作 URL - 中间件
- reactjs - 无法解决在 reactjs 中显示为未定义状态的错误?
- html - 在 html 的 span 类中显示向下箭头,就像代码显示中的加号一样?
- python - 需要有关随机字符串生成 python 的帮助
- javascript - ngrx 推迟一个有效的动作,直到另一个动作被分派
- php - Codigniter flashdata 有时不起作用
- mongodb - 如何从 MongoDB 字段中的字符串中删除特殊字符?
- python - 如何在 python 中编码视频响应?