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

이석민님의 프로필 이미지
이석민

작성한 질문수

Django REST Framework 핵심사항

Nested Serializer

CateTagAPIView에서 get 메소드

작성

·

221

1

안녕하세요! 강의 중에 CateTagAPIView안에 get을 정의 하셨는데 이 get은 오버라이딩인가요? APIView에 가서 찾아봤는데 get 메소드가 없어서,,

CateTagAPIView에서 정의한 get 메소드가 어떻게 실행(?) 되는건지 궁금합니다.

답변 2

2

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

안녕하세요. 독자님.

오버라이딩이 맞습니다. 상위 APIView 에서 간접적으로 get() 메소드가 정의되어서 잘 안보이는 것입니다. dispatch() 메소드의 아래 부분을 살펴 보기 바랍니다.

def dispatch(self, request, *args, **kwargs):
    ...
            if request.method.lower() in self.http_method_names:
                handler = getattr(self, request.method.lower(),
                                  self.http_method_not_allowed)
            else:
                handler = self.http_method_not_allowed

위 코드에서 handler 변수가 get 메소드를 의미 합니다.

request.method 가 "GET" 이나 "POST" 문자열인데, ~.lower() 에 의해, GET 요청이 오면 get 메소드가, POST 요청이 오면 post 메소드가 handler 변수에 대입됩니다.

도움이 되었기를 바랍니다.

 

 

0

이석민님의 프로필 이미지
이석민
질문자

아 dispatch에 있었군요!

답변 감사합니다!

이석민님의 프로필 이미지
이석민

작성한 질문수

질문하기