[Django] to_representation

ARA JO·2020년 11월 22일
1

Simtime 개발일지

목록 보기
2/7

상황

새로운 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__'

Example

request

{ event_name: "안녕", host: 1 }

response

{ id: 23, event_name: "안녕", host: {id:1, name:"ara", email:"1234@5673.com"}} 

Reference

Overriding serialization and deserialization behavior

profile
Sin prisa pero sin pausa (서두르지 말되, 멈추지도 말라)

0개의 댓글