Как создать вложенный формат json в сериализаторе django rest?

В настоящее время я имею такой формат в api

            "inner_divertor": {
                "volume": 5.2,
                "volume_units": "m^2",
                "volume_notes": "xyz"
            },
             "outer_divertor": {
                "volume": null,
                "volume_units": "m^3",
                "volume_notes": null
            }

Я пытаюсь добавить вложенную переменную "volume"

            "inner_divertor": {
                 volume:{
                     "volume": 4.3,
                     "volume_units": "m^2",
                     "volume_notes": "xyz" 
                      }
            },
            "outer_divertor": {
                volume:{
                     "volume": null,
                     "volume_units": "m^3",
                    "volume_notes": null}
            }

class InnerDivertorSerializer(FlexFieldsModelSerializer): class Meta: модель = InnerDivertor поля = ( 'volume', 'volume_units', 'volume_notes')

class OuterDivertorSerializer(FlexFieldsModelSerializer): class Meta: модель = OuterDivertor поля = ( 'volume', 'volume_units', 'volume_notes')

Согласно этой ссылке Документ, https://pypi.org/project/drf-flex-fields/

Я не думаю, что вам следует разделять inner_divertor, outer_divertor на два отдельных класса, поскольку они находятся на одном уровне иерархии.

Вместо этого попробуйте следующее:

class DivertorSerializer(FlexFieldsModelSerializer):
    class Meta:
        model = Divertor
        fields = ('inner_divertor', 'outer_divertor')
        expandable_fields = {
            'inner_divertor': VolumnSerializer,
            'outer_divertor': VolumnSerializer
        }

class VolumnSerializer(FlexFieldsModelSerializer):
    class Meta:
        model = Volumn
        fields = ('volume', 'volume_units', 'volume_notes')

Более того, вам необходимо иметь Volumn и Divertor model

Вернуться на верх