django rest框架嵌套模型序列化器
Posted
技术标签:
【中文标题】django rest框架嵌套模型序列化器【英文标题】:django rest framework nested modelserializer 【发布时间】: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
的查询集或实例?
我的目标是覆盖我们执行此操作时发生的情况。
【问题讨论】:
【参考方案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
【讨论】:
以上是关于django rest框架嵌套模型序列化器的主要内容,如果未能解决你的问题,请参考以下文章
Django Rest Framework 序列化器作为表单和嵌套关系
如何在 django rest 框架中的嵌套序列化器相关对象上使用 prefetch_related?
django-rest-framework、多表模型继承、ModelSerializers 和嵌套序列化器
如何获取主键相关字段嵌套序列化器django rest框架的所有值
python Django Rest_Framework框架 模型类序列化器(ModelSerializer)详解(图文并茂版)