Django Rest Framework - 使用相同实例的序列化器内部的序列化器
Django Rest Framework -Serializer inside serializer using same instance
所以,我有一个奇怪的遗留问题,我有一个模型“数据”,为了序列化目的,我需要重组字段。
class Data(models.Model):
id ...
field_a
field_b
field_c
date
然后我有序列化程序:
class DataInfoSerializer(ModelSerializer):
class Meta:
model = Data
fields = ['field_a', 'field_b', 'field_c']
class DataSerializer(ModelSerializer):
data_info = DataInfoSerializer(required=False, read_only=True)
class Meta:
model = Data
fields = ['id', 'date', 'data_info']
现在我必须以某种方式让 DRF 使用传递到“DataSerializer”的同一数据实例来呈现 DataInfoSerializer。
有什么实现方法吗?或者更好的方法。
使用source='*'
将整个对象传递给一个字段,包括嵌套的序列化程序。 Docs
class DataSerializer(ModelSerializer):
data_info = DataInfoSerializer(required=False, read_only=True, source='*')
class Meta:
model = Data
fields = ['id', 'date', 'data_info']
所以,我有一个奇怪的遗留问题,我有一个模型“数据”,为了序列化目的,我需要重组字段。
class Data(models.Model):
id ...
field_a
field_b
field_c
date
然后我有序列化程序:
class DataInfoSerializer(ModelSerializer):
class Meta:
model = Data
fields = ['field_a', 'field_b', 'field_c']
class DataSerializer(ModelSerializer):
data_info = DataInfoSerializer(required=False, read_only=True)
class Meta:
model = Data
fields = ['id', 'date', 'data_info']
现在我必须以某种方式让 DRF 使用传递到“DataSerializer”的同一数据实例来呈现 DataInfoSerializer。
有什么实现方法吗?或者更好的方法。
使用source='*'
将整个对象传递给一个字段,包括嵌套的序列化程序。 Docs
class DataSerializer(ModelSerializer):
data_info = DataInfoSerializer(required=False, read_only=True, source='*')
class Meta:
model = Data
fields = ['id', 'date', 'data_info']