강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của lsmseokminjjang0827
lsmseokminjjang0827

câu hỏi đã được viết

Các điểm chính của Django REST Framework

Trình nối tiếp lồng nhau

CateTagAPIView에서 get 메소드

Viết

·

299

1

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

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

rest-apidjango

Câu trả lời 2

2

bestdjango님의 프로필 이미지
bestdjango
Người chia sẻ kiến thức

안녕하세요. 독자님.

오버라이딩이 맞습니다. 상위 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

lsmseokminjjang0827님의 프로필 이미지
lsmseokminjjang0827
Người đặt câu hỏi

아 dispatch에 있었군요!

답변 감사합니다!

Hình ảnh hồ sơ của lsmseokminjjang0827
lsmseokminjjang0827

câu hỏi đã được viết

Đặt câu hỏi