django rest框架嵌套的modelserializer

时间:2014-06-05 18:19:06

标签: python django django-models django-queryset django-rest-framework

这是我的另一个问题 django-rest-framework, multitable model inheritance, ModelSerializers and nested serializers

在django rest框架中,我们可以像这样定义嵌套模型序列化器

class OtherModelSerializer(serializer.ModelSerializer):
    mybasemodel_set = MyBaseModelSerializer(many=True)

    class Meta:
        model = OtherModel

当我们创建一个OtherModelSerializer时,MyBaseModelSerializer在__init__运行之前被实例化。 我相信是这种情况,因为如果我覆盖MyBaseModelSerializer的__init__()并检查" instance",则为None。

我的问题是MyBaseModelSerializer何时以及如何通过mybasemodel_set的查询集或实例?

我的目标是覆盖我们这样做时会发生的事情。

1 个答案:

答案 0 :(得分:0)

这一行

mybasemodel_set = MyBaseModelSerializer(many=True)

将初始化类MyBaseModelSerializer的实例并将many=True作为参数传递。

MyBaseModelSerializer如何通过查询集或实例传递?

我不是100%肯定你想做什么,但很可能

class MyBaseModelSerializer(serializers.ModelSerializer):
     def to_representation(self, instance):
         pass

您正在寻找的功能。您将获得一个实例,并希望返回序列化数据。

http://www.django-rest-framework.org/api-guide/serializers/#overriding-serialization-and-deserialization-behavior