【问题标题】:django rest framework nested modelserializerdjango rest框架嵌套模型序列化器
【发布时间】:2014-07-26 20:53:20
【问题描述】:

这与我的另一个问题有关
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__() 并检查“实例”,它是无。

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

我的目标是覆盖我们执行此操作时发生的情况。

【问题讨论】:

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


    【解决方案1】:

    这一行

    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

    【讨论】:

      猜你喜欢
      • 2017-11-15
      • 2018-12-13
      • 2021-06-23
      • 2016-08-01
      • 2013-07-20
      • 2016-05-04
      • 1970-01-01
      • 2013-05-05
      • 2016-04-07
      相关资源
      最近更新 更多