[TIL] Serializer는 단독적일까? 22/11/01 02일차 [1/3]

2022. 11. 1. 16:13스파르타코딩(22.8.29~22.12.31)/TIL(Today I Learned)

- Today I Learned

- Serializer는 이전 글에서 변환기라고 했는데 단독적일까?

갑자기 의문점이 들어서 오전에 kmc튜터님과 같이 실험을 해보았다.

(중간에 migrate가 안되는 등 이상한 오류가 많이 났지만.. 감사합니다..)

아티클의 메타를 참고해서 만든 시리얼라이저 틀

 

해당 Article을 참조한 serializer에 articles의 쿼리셋이 아닌 동일한 buti를 만들어서 넣어보았다.

serializer에서 Article의 메타를 속성을 그대로 참조했기 때문에

속성은 동일하게 모델 이름만 다르게 만들어 주었다. 오류가 날것이 분명하기 때문에..

공식문서를 확인하면 serializer는 공식문서에서 meta명 필드,속성값을 따라한다고 한다.

같아야 작동을 하기 때문에 이름만 변경해서 새로 만들어보았다.

 

부티(원래 이쁜이름 찾다 beatiful을 줄여서 하려고 했는데 하다보니.. 영어공부좀해야겠다.;)

라는 동일한 모델의 클래스를 생성하고

아까 아티클의 쿼리셋 자리에 butis를 넣어서 확인해보았다.

하고나서 놀랐던게 잘들어온다.. 보고나서 응?

시리얼라이즈는 필드와 속성이 같다면 이름이 다른 모델이라도 직렬화를 할 수 있다.

 

물론 저렇게 시리얼라이즈를 다르게 적용할일도 없고

같은 모델에서 모델의 클래스명도 같을경우 마이그레이트도 안될것이다.

 

serializer가 어떤 뜻인지 알고 싶었고 단독적인 아이인지 확인하고 싶었다.

전에 힘들게 했던던..

이짓을 하지말라는 대신해주는 아이

kmc 튜터님 감사합니다.

 

결론 직렬화는 serializer의 역할 중 하나로

        장고의 데이터베이스의 각 레코드를 Json 형태로 사용자가 알아보기 쉽게 할수있다.

 

실험결과 시리얼라이즈 특정 모델을 가르키는것이 아닌 그 모델 필드 기반으로 동작한다.

               필드와 속성이 같다면 이름이 다른 모델이라도 직렬화를 할 수 있다.

반응형