在嵌套序列化程序调用时从自定义序列化程序访问数据

时间:2015-10-10 17:47:59

标签: django django-rest-framework django-serializer

我有一个调用其他序列化程序的序列化程序,而另一个序列化程序是一个自定义的序列化程序,它会覆盖.to_representation()行为。如果我无法访问从视图发送到第一个序列化程序的数据,我应该如何从第一个调用此自定义序列化程序?

这是一个简单的例子:

class OtherSerializer(serializers.Serializer):
    def to_representation(self, obj):
        # ... can't get data

class NestedSerializer(serializers.Serializer):
    someotherfield = OtherSerializer(somedata, many=True)  # this fails because obviously can't read "somedata", how to get access to it?
    boolfield = BooleanField()

NestedSerializer(data={'someotherfield': somedata, 'boolfield': False})  # this somedata is the one I'm talking above

1 个答案:

答案 0 :(得分:0)

您可以尝试删除参数somedata吗?您的代码应如下所示:

class NestedSerializer(serializers.Serializer):
    someotherfield = OtherSerializer(many=True)
    boolfield = BooleanField()

我认为关键是“其他地方”。指的是一个列表,否则你不需要很多= True。

让我知道这对你有什么用。