我再次陷入了Django REST框架及其序列化程序中。
基本上,我想做的是将以下输入数据粘贴到序列化程序.序列化程序实例:
data = {
"thing_id": 715,
"sub_things": [
{
"id": 1,
"name": "bob"
},
{
"id": 2,
"name": "mike"
}
]
}
子项由a处理序列化程序.modelsserializer叫做亚辛烷化剂。这就是它的样子。
^{pr2}$对象的序列化由ThingSerializer处理,我现在将其处理为以下内容:
^{pr3}$现在,当我这么做的时候
^{pr4}$我得到空订单,如:
{'sub_things': [OrderedDict(), OrderedDict()], 'thing_id': 715}
我想说ThingSerializer不需要存储到数据库中是明智的,但它确实使用了数据库中的子对象。这些也不会写入db。这只是为了跟踪该对象包含的子类内容,在浏览器客户端和Python对象之间来回传递这些数据,以进行一些计算。也许把它储存在会话中。
编辑1:
很可能我需要在ThingSerializer的create方法中添加一些东西。所以,我想最终的问题是:将子事物数据传递给子项目化器的正确语法是什么?
编辑2:
我再挖了一点。似乎空OrderEddics已传入已验证的\u数据ThingSerializer.create()出于某种原因。序列化程序验证是否正确序列化程序.u有效(). 我可以从初始的\u数据访问必要的数据,但这似乎不是很可靠。
编辑3:
也用序列化程序.ListField()对于子项。仍然在create方法中的已验证的\u数据中看到空orderEddict。
终于弄明白了。SubThingSerializer上的只读字段阻止数据通过验证,从而导致创建空dict。我使用只读字段来防止不存在的子对象数据被传递到我的代码中,但是我想我需要另一种方法。在
相关问题 更多 >
编程相关推荐