i want convert raw json:
{'code': 1, 'inner': {'x': 1, 'y': 1}}
to rendered serializer.data:
{'code': 1, 'inner_x': 1, 'inner_y': 1}
with django rest framework serializer.
which code should placed in serializer?
i think better have same structure in both server , client. can create class x,y members named "inner" , "inner" can foreign key member in original class.
to answer question, can override create function:
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)
- this example code - didn't run it
edit: take here
you can define innerserializer no model this:
from rest_framework import serializers class commentserializer(serializers.serializer): email = serializers.emailfield() content = serializers.charfield(max_length=200) created = serializers.datetimefield()