// 선 reference : https://docs.djangoproject.com/en/dev/topics/serialization/


장고에서 기본 json serializer를 이용하면 내가 원치 않는 형식으로 나오게 된다.


pk가 노출되거나, model명이 나오거나, fields 밑에 필드가 나오거나...


물론 이걸 장고 내에서 그대로 deserialize 하는 경우에는 별 문제 없이 작동하겠지만, 다른 플랫폼과 통신하는 용도로 쓰기에는 조금 무리가 있다.


이전 프로젝트에서는 클라이언트에서 거의 무조건적으로 서버의 형식에 맞춰줬는데, 조금 비효율이었다.


그 당시 조사를 할 때는 해결 방안이 잘 보이지 않았는데 나중에 시간이 지나 비슷한 문제로 다시 검색을 하니 해결책이 보였다.





또는 더 응용하면 다른 원하는 형식으로 출력할 수 있겠더라.


장고 상에서 deserialize는

이런 식으로 하는데 앞의 serializers를 override하여 입맛에 맞게 바꿔주면 된다.


그냥 json serializer로 가면 어디를 손대야 할지 잘 보이지 않는다.


여기보다는 json serializer가 상속한 python serializer의 get_dump_object를 조금 수정하면 된다.



여기에서 models와 fields 필드를 붙이는 걸로 보인다.


그러니 serializer를 상속하고 get_dump_object를 override 해서 원하는 형식으로 object를 dump하도록 하면 된다.



// 출처 : http://stackoverflow.com/questions/15453072/django-serializers-to-json-custom-json-output-format

'Projects > django' 카테고리의 다른 글

django에서 BigIntegerField로 pk나 fk 쓰기  (0) 2015.02.12
Posted by 병아리

사이드바 열기