我想将一些json数据返回给客户端。因此,我编写了一个序列化程序来表示最后输出的域对象。我完全无法理解引擎盖下的机制,也是嵌套的序列化器。以下面的模型为例:
class AddressSerializer(serializers.Serializer):
address = serializers.CharField()
zipcode = serializers.CharField()
class AccountSerializer(serializers.Serializer):
name = serializers.CharField()
address = AddressSerializer
根据官方文件,我知道我可以通过
初始化AccountSerializerac = AccountSerializer(data={"name":"TOM"})
问题1
如果我想以某种方式初始化AccountSerializer,如下所示:
ac = AccountSerializer()
ac.name = "TOM"
我怎么能这样做?
问题2
如何使下面的代码有效?
ad = AddressSerializer(data={"address":"NewYork"});
ac = AccountSerializer(data={"name":"TOM"});
ac.address = ad
ac.is_valid()
ac.data
这样我就可以获得像
这样的输出{name: "Tom", address: {address: "NewYork"}}
非常感谢您的任何教学/评论。
答案 0 :(得分:0)
问题1
data = {
'name': 'TOM'
}
ac = AccountSerializer(data=data)
问题2
应该是这样的:
data = {
'name': 'TOM'
'address': {
'address': 'NewYork'
}
}
ac = AccountSerializer(data=data)