django rest framework nested modelserializer

核能气质少年 提交于 2019-12-23 09:24:10

问题


this is realted to my other question
django-rest-framework, multitable model inheritance, ModelSerializers and nested serializers

In django rest framework we can define nested model serializer like so

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

    class Meta:
        model = OtherModel

when we create an OtherModelSerializer, the MyBaseModelSerializer is instantiated before __init__ is run. I believe this is the case because if I override the __init__() of MyBaseModelSerializer and check "instance", it is None.

My question is when and how does MyBaseModelSerializer get passed the queryset or instance for mybasemodel_set?

My goal here is to override what happens when we do this.


回答1:


This line

mybasemodel_set = MyBaseModelSerializer(many=True)

Will initialize an instance of class MyBaseModelSerializer and pass many=True as parameter.


How does MyBaseModelSerializer get passed the queryset or instance?

I am not 100% sure what are you trying to do but most probably

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

Is the function you are looking for. You will be given an instance and expected to return serialized data.

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



来源:https://stackoverflow.com/questions/24067371/django-rest-framework-nested-modelserializer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!