Django Rest Framework -Сериализатор внутри сериализатора с использованием одного экземпляра
Итак, у меня есть странная проблема, связанная с наследием, где у меня есть одна модель "Data", и для целей сериализации мне нужно изменить структуру полей.
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 использовать тот же экземпляр Data, который передается в "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']