CEOS 4주차 - Django REST Framework(1) / Serializer

diveintoo·2022년 5월 1일
0

CEOS

목록 보기
4/6

CEOS 15th 백엔드 4주차 과제 공부기록

Django REST Framework와 Serializer 활용하기

데이터 삽입

Post, Comment 모델

Comment가 Post를 fk로 가지고 있습니다.
스크린샷 2022-04-07 오후 3 28 04

Serializer

Nested Serializer로 구현했습니다.

스크린샷 2022-04-07 오후 3 30 51

그런데 shell에서 데이터를 넣고 출력해보면 아래의 사진처럼 comments가 보이지 않는 오류가 발생했습니다.
nested_serializer_error

원인을 찾아보니 model에서 related_name이라는 필드가 있는 것을 발견하고 추가해주니 정상적으로 comments가 출력되는 것을 볼 수 있었습니다.

ns_error_모델변경 ns_error_해결코드

그리고 장고 admin 페이지에서 Post와 Comment를 확인해보았습니다.
post

comment

모든 데이터를 가져오는 API

모든 'Post'의 list를 가져오는 API 요청 결과

url : api/post/ GET

GET api:post

새로운 데이터를 create하도록 요청하는 API

Post를 추가하는 API 요청 결과

url : api/post/ POST

POST api:post:

회고

이번 주는 아주 다사다난 했습니다. 저번 주에 장고가 'environ'이라는 모듈 하나를 인식하지 못해서 애를 먹었는데 전부 파헤쳐보니 파이썬의 경로가 꼬여서 생긴 오류였습니다.

이 오류를 해결하고자 빽엔드 운영진분들이 많은 도움을 주셨습니다. 정말 감사합니다..❤️

그렇게 파이썬을 모두 지우고 다시 깔았더니 장고가 오류 없이 깨끗하게 잘 돌아갔습니다! 너무 기뻐서 과제하는 것이 아주 즐거웠습니다!

지난 과제 피드백을 반영해서 timestamp라는 추상 클래스를 만들고 상속받는 구조로 DB를 수정했습니다. 중복되는 필드를 없애니 코드가 눈에 더 잘 들어오는 것 같습니다.

nested serializer에서 'related name'을 지정하지 않아서 생긴 오류 때문에 구글링을 열심히 해보았지만 해결방법은 공식 문서에서 찾을 수 있었습니다.

공식 문서를 한 번 꼼꼼하게 읽는 것이 100블로그 들어가보는 것보다 낫다는 깨달음을 얻었습니다.

0개의 댓글