제네릭 뷰 : Django에서 제공하는 CBV(Class-Based View)로, 자주 쓰는 View가 미리 만들어져있다. 상속받아서 사용
공식 문서 : https://docs.djangoproject.com/en/4.2/ref/class-based-views/
Django
The web framework for perfectionists with deadlines.
docs.djangoproject.com
Base views
뷰 클래스를 생성하고, 다른 제네릭 뷰의 부모 클래스가 되는 기본 제네릭 뷰
- View : 최상위 제네릭 뷰, 기본 뷰, Django view를 만드는데 필요한 기능 제공
- TemplateView : 템플릿이 주어지면 렌더링을 해주는 뷰
- RedirectView : URL이 주어지면 리다이렉트 해주는 뷰
Generic display views
객체의 목록 또는 객체의 상세 정보를 보여주는 뷰
- DetailView : model과 템플릿을 받아 조건에 맞는 상세 오브젝트를 보여줌
- ListView : model과 템플릿을 받아 전체 오브젝트를 보여줌
Generic editing views
폼을 통해 객체를 생성, 수정, 삭제하는 기능을 제공하는 뷰
- FormView : 폼을 보여주고 처리
- CreateView : 폼을 보여주고 객체를 생성
- UpdateView : 폼을 조건에 맞게 보여주고 객체를 수정
- DeleteView : 객체를 삭제
Generic date views
날짜 기반 객체의 연/월/일 페이지로 구분해서 보여주는 뷰
- ArchiveIndexView : 조건에 맞는 객체의 날짜 정보를 출력
- YearArchiveView : 연도에 맞는 객체를 출력
- MonthArchiveView : 월에 맞는 객체를 출력
- WeekArchiveView : 주에 맞는 객체를 출력
- DayArchiveView : 일에 맞는 객체를 출력
- TodayArchiveView : 오늘 날짜에 객체를 출력
- DateDetailView : 연, 월, 일 조건에 맞는 객체를 출력
제네릭 뷰 오버라이딩
속성 변수 오버라이딩
- model
- queryset
- template_name : 템플릿 파일 명을 지정
- context_object_name : 뷰에서 템플릿 파일에 전달하는 context 변수명 지정
- paginate_by : 페이지당 출력 항목 수 지정
- date_field : 필터링할 날짜 모델의 필드 이름 지정
- form_class : 폼을 만드는데 사용할 클래스 지정
- sucess_url : 폼의 처리 성공 후 리다이렉트할 URL 주소
메소드 오버라이딩
- def get_queryset() : 기본적으로 모든 queryset 을 반환하지만 오버라이딩을 통해서 원하는 데이터를 반환하도록 제어가능
- def get_context_data(**kargs) : 기본적으로 딕셔너리 컨텍스트 데이터를 반환하지만 오버라이딩을 통해서 원하는 원하는 컨텍스트 데이터를 반환하도록 조작가능
- def form_valid(form) : 폼이 유효할때 실행
'Django' 카테고리의 다른 글
Django 실습(8) RDB(관계형 데이터베이스) 만들어보기 (2) | 2023.10.17 |
---|---|
Django 템플릿 필터 (1) | 2023.10.17 |
Django 실습(7) 클래스 기반 뷰 (Class-Based Views) 이용하기 (1) | 2023.10.16 |
Django 실습(6) Login 기능 구현하기 (0) | 2023.10.13 |
Django 실습(5) Form과 ModelForm 사용한 블로그 (0) | 2023.10.12 |