[TIL #55] 최종프로젝트 #4 ERD 수정

안떽왕·2023년 6월 12일
0

Today I Learned

목록 보기
57/76

팀원들간의 회의 그리고 튜터님의 조언으로 본래 api요청만을 의존해 데이터를 가져오는 방식에서 벗어나 오픈 데이터를 따로 저장해 이용하는 방식으로 설계를 전환하게 되었습니다.

이에 따라 본래 만들어졌던 모델, 시리얼라이저의 변화는 당연하고 함수들 역시 변화가 불가피했습니다.

모델의 수정이야 안쓰는 모델을 제거하고 새로운 모델을 추가하는 작업이 그렇게 어렵지도 오래 걸리지도 않았지만, 시리얼라이저가 참 힘들었습니다.

모델을 수정하며 related_name을 몇 개 수정한 것도 시리얼라이저를 수정할 때는 크게 작용했고 기존에는 데이터를 받아오다보니 본래 없었던 모델이 하나 추가 됨으로서 본래의 시리얼라이저와는 크게 다른 양상을 가지게 되었습니다.

그리고 오늘 있었던 에러 사례를 하나 가지고 왔습니다.

{
    "title": "광주여행",
    "content": "무등산",
    "duration": "2023-06-02 ~ 2023-06-11",
    "cost": 120000,
    "routespot": [2, 1, 3]
}

위와 같은 json 데이터를 보내주면 routespot에 적혀있는 대로 2, 1, 3을 읽으면 좋겠는데 적혀져 있는 대로 인식하지 않고 [<object01...>] 과 같은 형태로 받아들이고 있었습니다.

이를 해결하기 위해 검색을 해본결과 시리얼라이저에서 리스트의 요소들을 개별 인자로 전달해야 원하는 결과를 받을 수 있다는 정보를 입수하였고 그대로 실행했습니다.

route.routespot.add(routespot_data)
route.routespot.add(*routespot_data)

네 바뀐점이 있다면 *이 하나 들어가 있다는 점입니다.
이후 다시 테스트를 해보니 이번에는 본래 원했던 대로 리스트안의 값을 얻어 올 수 있었습니다.

profile
이제 막 개발 배우는 코린이

0개의 댓글