• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

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

23.09.09 20:12 작성 조회수 182

0

질문있습니다 강사님,

instagram /serializers.py 에서

AuthorSerializer 클래스의 avatar_url_field 메서드는

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

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

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

 

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

 

답변 2

·

답변을 작성해보세요.

1

조윤식님의 프로필

조윤식

질문자

2023.09.10

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

0

안녕하세요.

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

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

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

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

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

화이팅입니다. :-)