Django에서 페이지 이동 없이 만들 수 있는 방법이 Mixin Class View 를 사용하는 방법이다.

Todo 앱을 예를 들면 위에 입력받아서 등록하는 부분은 CreateView를 입력받아야하고

ToDo list들은 ListView로 보여줘야한다.

Generic View들은 일종의 잘 사용하는 기능을 따로 만든 뒤에 Mixin Class로 구현하고 나서

이를 이름별로 구현했다는 점을 알 수 있다.

ListView와 CreateView를 비교하면 CreateView가 더 복잡한데 그 이유는 Form 처리를 위해서이다.

코딩을 할때는 (mixin, main) 이런식으로 적어준다.

다중 상속을 받을때는 좀 더 복잡한 CreateView를 메인으로 두는 것을 추천한다.

class TodoMixin(ListView, CreateView):
	...


object_list가 어디서 만들어지는지 확인하기 위해서

ListView에서 get_context_data를 보여주는 부분은 MultipleObjectMixin에 있다.

CreateView에 없는 object_list 부분을 넣어준다.

핵심적인 부분은 object_list를 넣어줘야한다. 이건 코드를 까보면서 알아야하고 공식문서를 참조하면서 알아야한다.

정리

어떤 클래스를 상속받냐에따라 다르지만 흐름은 이런식이다.

(MutipleObjectMixin, CreateView)

대부분의 기능을 CreateView에서 처리를 받고, Createview에 없는 object_list 등은 MutipleObjectMixin에서 가져온다.