序列化通过另一个模型相关的模型字段
我有四个模型连接如下:
class A:
some fields
class B:
ForeignKey('A')
class C:
ForeignKey('B')
class D:
ForeignKey('C')
现在,当我序列化D时,我还想从A序列化相关的模型字段 . 当然,这可以使用嵌套的序列化器来完成,如下所示:
class ASerializer:
class Meta:
model = A
fields = ('id', some fields)
class BSerializer:
a_s = ASerializer(read_only=True)
class Meta:
model = B
fields('id', 'a_s')
class CSerializer:
b_s = BSerializer(read_only=True)
class Meta:
model = C
fields('id', 'b_s')
class DSerializer:
c_s = CSerializer(read_only=True)
class Meta:
model = D
fields('id', 'c_s')
但是,我想在序列化D时仅显示相关A对象的字段,而不包括C或B对象 . 我该怎么做呢?
2 years ago
你可以在
class CSerializer
中定义serializers.SerializerMethodField()
:文件:https://www.django-rest-framework.org/api-guide/fields/