Я пытался сделать вложенное json вместо плоского json. Я получаю,
{
"field1": "value1",
"field2": "value2"
}
И я пытаюсь сделать как,
{
"field1": "value1",
"extra": {
"x1" : "value2",
"comment": "my comment"
}
}
Моя модель проста,
class MyModel(BaseMeta):
field1 = models.CharField(db_column='field1', primary_key=True, max_length=11)
field2 = models.CharField(db_column='field2')
Сериализатор
class MyModelSerializer(serializers.Serializer):
class Meta:
model = MyModel
fields = ['field1', 'field2']
Решение состоит в следующем,
class MyModelSerializer(serializers.Serializer):
extra = serializers.SerializerMethodField('get_extra')
class Meta:
model = CowMating
fields = ['field1', 'extra']
def get_extra(self, obj):
return {
'x1': obj.field2,
'comment': 'my comments'
}
Но мне интересно, возможно ли написать другой сериализатор, такой как
class ExtraSerializer(serializers.Serializer):
x1 = serializers.CharField(source='field2')
comment = "my comment"
, и сериализатор будет в ModelSerializer
,
class MyModelSerializer(serializers.Serializer):
extra = ExtraSerializer()
class Meta:
model = MyModel
fields = ['field1', 'extra ']
Пожалуйста, дайте несколько советов. Заранее спасибо.