django rest框架嵌套的modelserializer

w--*_*w-- 6 python django django-models django-queryset django-rest-framework

这是我的另一个问题
django-rest-framework,多模型继承,ModelSerializers和嵌套序列化

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

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

    class Meta:
        model = OtherModel
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ram*_*ast 0

这条线

mybasemodel_set = MyBaseModelSerializer(many=True)
Run Code Online (Sandbox Code Playgroud)

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


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

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

class MyBaseModelSerializer(serializers.ModelSerializer):
     def to_representation(self, instance):
         pass
Run Code Online (Sandbox Code Playgroud)

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

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