강의

멘토링

커뮤니티

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

재원님의 프로필 이미지
재원

작성한 질문수

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

장고 기본 CBV API (Generic editing views)

ProcessFormVIew에 대한 질문입니다.

해결된 질문

작성

·

245

0

"장고 기본 CBV API (Generic editing views)" 강의를 들으면서 ProcessFormView의 소스 코드를 보던 중 get 매쏘드에 render_to_response, get_context_data 매쏘드가 사용된 것을 보았습니다. 그런데 ProcessFormView와 이것의 부모인 View class에는 render_to_response, get_context_data가 정의 되어있지 않습니다. 그렇다면 도대체 이 함수들의 출처는 어디일까요? 제가 계속 고민을 해보고 한번 추측을 해봤는데 제가 추측하기로는 ProcessFormView는 단독을 쓰이지 않고 무조건 어떤 class의 부모로서만 역할을 하고 또한 ProcessFormView를 상속받는 class에 render_to_response, get_context_data가 정의가 되어있다면 문제는 없을 것 같습니다. 제 추측이 맞나요?

답변 1

1

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

안녕하세요.

말씀해주신 내용이 맞습니다.

render_to_response는 django/views/generic/base.py 내의 TemplateResponseMixin 내에 구현되어있습니다. (관련코드)

ProcessFormView는 GET/POST 요청에 맞춰 Form을 처리하는 방법을 구현하고 있을 뿐, 직접적으로 ProcessFormView를 상속받아서 뷰를 구현하는 일은 대개 없습니다.

django/views/generic/edit.py 에서도 상속관계를 살펴보실 수 있는 데, ProcessFormView를 상속받은 FormView나 CreateView, UpdateView 등을 사용하시는 것이 보다 장고 CBV 컨벤션에 맞는 접근입니다.

궁금증이 해결되셨다면, 질문의 상태를 해결됨으로 변경 부탁드립니다.

화이팅입니다. :-)

재원님의 프로필 이미지
재원

작성한 질문수

질문하기