Я думаю, что лучше иметь такую же структуру как на сервере, так и на клиенте. Вы можете создать класс с x, y членами с именем «Внутренний» и «внутренний» может быть членом внешнего ключа в вашем исходном классе.
Чтобы ответить на этот вопрос, вы можете переопределить функцию создания:
class InnerSerializer(serializers.ModelSerializer):
class Meta:
model = Inner
fields = ('x', 'y')
class CostumeSerializer(serializers.ModelSerializer):
inner = InnerSerializer()
class Meta:
model = MyModel
fields = ('code', 'inner')
def create(self, validated_data):
inner = validated_data.pop('inner')
return MyModel.objects.create(inner_x=inner.get('x', None), inner_y=inner.get('y', None), **validated_data)
- Это пример кода - я не запустить его
EDIT: гляньте here
Вы можете определить InnerSerializer без такой модели:
from rest_framework import serializers
class CommentSerializer(serializers.Serializer):
email = serializers.EmailField()
content = serializers.CharField(max_length=200)
created = serializers.DateTimeField()
Я хочу сделать это без модели django. Данные поступают ко мне из внешней службы, и я хочу установить правила для преобразования из одного json в другой. – okuznetsov