Как создать вложенный формат 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