인프런 커뮤니티 질문&답변

조윤식님의 프로필 이미지

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

환경변수를 통한 API HOST 지정

AuthorSerializer 의 avatar_url_field 메서드의 author 인자 질문입니다.

23.09.09 20:12 작성

·

224

0

질문있습니다 강사님,

instagram /serializers.py 에서

AuthorSerializer 클래스의 avatar_url_field 메서드는

두번째 인자로 author 를 받아서 처리해주고 있는데

AuthorSerializer 내부에서 author를 정의해준 부분이 없는데

어떻게 author를 인자로 받을 수 있는걸까요?

 

마찬가지로 PostSerializer 클래스의 is_like_field 메서드의 두번째 인자인 post도 어떻게 받아 처리하는 건지 궁금합니다.

 

답변 2

1

조윤식님의 프로필 이미지
조윤식
질문자

2023. 09. 10. 13:41

네 잘 이해했습니다 친절한 답변감사드립니다^^

0

이진석님의 프로필 이미지
이진석
지식공유자

2023. 09. 09. 22:50

안녕하세요.

AuthorSerializer는 User 모델에 대한 모델시리얼라이저입니다.

그리고 ModelSerializer에서 SerializerMethodField를 선언하게 되고, 첫번째 인자로 호출할 메서드명을 지정해줬습니다. 그러니 avatar_url 필드에 대한 값을 구할 때, 메서드명으로 지정한 avatar_url_field 가 호출됩니다. 인자로 메서드명을 지정하지 않으면 디폴트로 get_avatar_url 을 찾아서 호출합니다.

SerializerMethodField에 대한 메서드를 호출할 때에는 인자로 모델 인스턴스를 넘겨줍니다. 현재 AuthorSerializer는 User 모델에 대한 모델시리얼라이저이니까 User 인스턴스가 넘어올 테구요. 저는 인자로 받는 이름을 user가 아니라 author로 받은 상황입니다. :-)

PostSerializer의 is_like 필드도 위에서 설명드린 것과 같습니다.

살펴보시고 댓글 부탁드립니다.

화이팅입니다. :-)