본문 바로가기

개발/장고

[DRF] Serializers - 객체 역직렬화 하기

반응형
serializers_객체역직렬화하기

[DRF] Serializers - 객체 역직렬화 하기

원문 의 내용 중 해석이 애매한 부분은 그대로 표기하였고, 복잡한 문장은 의역하여서 정리하였습니다

역직렬화도 비슷하다. 첫번째로는 stream을 Python native datatype으로 파싱한다.

그리고 나서 우리는 네이티브 데이터 타입을 복원한다 - 검증된 사전 데이터


내 마음대로 해설

역직렬화는 직렬화의 과정의 반대로 진행되는데 위 예제에서는 stream 형태로 들어왔을때, JSONParser를 이용하여서 파이썬 네이티브 데이터타입으로 변경하는 것을 보여준다.

그리고 나서는 CommentSerializer(data=data) 를 해주는데, 이전에 보았던 CommentSerializer(data) 과는 다르다.

BaseSerializer 클래스의 doc string을 보면 아래와 같다.

data= 이 붙고 안붙고에 대해서 이용 가능한 메소드 목록이 다른데, data= 을 붙인다면, 위에 표시된 메소드들을 이용가능한데 전부 외부로 부터 들어온 데이터에 대해서 검증과 관련 된 메서드드들이다. 즉, 외부에서 부터 들어오는 데이터에 대해서 유효성 검증이 필요할 때는 data= 를 쓰면된다. 위의 예제에는 stream 형태로 외부로 부터 들어온 것을 가정하였기 때문에 위 예제가 data= 을 써주어서 유효성 검사(is_valid) 해주는 것이 맞다.


결론

  • 역직렬화

    • stream -> python data types -> serializer.validated_data
반응형