Home > Net >  Django Rest Framework -Serializer inside serializer using same instance
Django Rest Framework -Serializer inside serializer using same instance

Time:03-12

So, I have a weird legacy issue where I have one model "Data", and for serialization purposes I need to restructure the fields.


class Data(models.Model):
   id ...
   field_a
   field_b
   field_c
   date

Then I have the serializers:

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']

Now I somehow have to get DRF to use the same instance of Data that is passed into the "DataSerializer" to render the DataInfoSerializer.

Any ideas how to achieve this? Or a better way.

CodePudding user response:

Use source='*' to pass the entire object to a field, including nested serializers. Docs

class DataSerializer(ModelSerializer):
    data_info = DataInfoSerializer(required=False, read_only=True, source='*')
    
    class Meta:
        model = Data
        fields = ['id', 'date', 'data_info']
  • Related