새로운 event 데이터를 유저가 웹에서 작성하여 post 요청을 보내면 서버에서 이를 DB에 저장하고, request와는 다른 변형된 데이터를 response에 담아보내야한다.
아주 간단한 문제였다.
바로 to_representation() 를 사용하면 된다.
(그 반대의 경우는 to_internal_value()를 사용하자.)
class EventSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
res = super().to_representation(instance)
res.update({'host': UserSerializer(instance.host).data})
return res
class Meta:
model = Event
fields = '__all__'
request
{ event_name: "안녕", host: 1 }
response
{ id: 23, event_name: "안녕", host: {id:1, name:"ara", email:"1234@5673.com"}}