인프런 커뮤니티 질문&답변
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 컨벤션에 맞는 접근입니다.
궁금증이 해결되셨다면, 질문의 상태를 해결됨으로 변경 부탁드립니다.
화이팅입니다. :-)





