【发布时间】:2016-05-03 12:24:49
【问题描述】:
我有这些序列化程序:
class ASerializer(serializers.ModelSerializer):
name = serializers.CharField()
class Meta:
model = AModel
fields = ('id','name')
class BSerializer(serializers.HyperlinkedModelSerializer):
a = ASerializer(partial=True)
name = serializers.CharField()
class Meta:
model = BModel
fields = ('id','name', 'a')
class CSerializer(serializers.HyperlinkedModelSerializer):
b = BSerializer(partial=True)
created_by = UserSerializer(required=False)
message = serializers.CharField()
class Meta:
model = CModel
fields = ('id','b', 'created_by', 'message')
以下是数据,我发送给服务:
data_json = {
"id": '1',
"b": '2',
"created_by":'3',
"message": 'Hello world'
}
我希望响应数据包含所有嵌套的完美对象,而不仅仅是嵌套对象的 ID。
如何将B 对象或created_by 对象替换为它们的ID 以创建C 对象?
【问题讨论】:
-
尝试将字段更改为
("id", "b__id", "created_by__id", "message") -
在创建 C 对象时,您还可以使用完整的对象 json 获取 id,例如
b['id']、crearted_by['id'] -
请尝试更好地解释您想要做什么。你想得到的data_json应该是什么样子的?
-
我想获取包含在所有嵌套对象中的数据,而不仅仅是嵌套对象 id。 @ozren1983
-
问题已更新
标签: python django rest django-rest-framework serialization