(Python) Django 제네릭 뷰 오버라이딩

각 제네릭 뷰에서 제공하는 속성과 메소드가 많아서 모든 것을 설명하기는 어렵다.
여기서는 오버라이딩에서 자주 사용하는 속성과 메소드를 살펴보겠다.



* 속성 오버라이딩


1. model

기본 뷰(View, TemplateView, RedirectView) 3개를 제외하고는 모든 제네릭 뷰에서 사용하는 속성이다. 뷰가 출력할 데이터가 들어 있는 모델을 지정한다.
model 대신 queryset속성으로 지정할 수 도 있다. 다음 표현은 동일하다


  • model = Bookmark
  • queryset = Bookmark.objects.all()

2. queryset

기본 뷰(View, TemplateView, RedirectView) 3개를 제외하고는 모든 제네릭 뷰에서 사용하는 속성이다. 뷰가 출력할 데이터가 들어 있는 모델을 지정한다.
출력대상이 되는 QuerySet객체를 지정한다.

queryset속성을 지정하면 model은 무시된다.


3. template_name

TemplateView를 포함해 모든 제네릭 뷰에서 사용하는 속성이다. 템플릿 파일 명을 문자열로 지정한다.


4. context_object_name

TemplateView를 포함해 모든 제네릭 뷰에서 사용하는 속성이다. 템플릿 파일에서 사용할 컨텍스트 변수명을 지정한다.


5. paginate_by

ListView와 날짜 기반 뷰에서 사용한다. 페이징 기능이 활성화된 경우에, 페이지당 몇 개 항목을 출력할 것인지 정수로 지정한다.


6. date_field

날짜 기반 뷰에서 기준이 되는 필드를 지정한다. 이 필드를 기준으로 년/월/일을 검사한다.
이 필드의 타입은 DateField 또는 DateTimeField 이어야 한다.


7. make_object_list



8. form_class

FormView, CreateView, UpdateView 에서 사용한다. 폼을 만드는데 사용할 클래스를 지정한다.

9. initial
FormView, CreateView, UpdateView 에서 사용한다. 폼에 사용할 초기 데이터를 사전({})
으로 지정한다.

10. fields

CreateView, UpdateView 에서 사용한다. 폼에서 사용할 필드를 지정한다. ModelForm클래스의 Meta.fields속성과 동일한 의미이다.


11. success_url

FormView, CreateView, UpdateView, DeleteView에서 사용한다.
폼에 대한 처리가 성공한 이후에 리다이렉트될 URL을 지정한다.



* 메소드 오버라이딩


1. get_queryset()

기본뷰(View, TemplateView, RedirectView) 3개를 제외하고는, 모든 제네릭 뷰에서 사용하는 메소드이다. 

출력 객체를 검색하기 위한 대상 QuerySet 객체 또는 출력 대상인 객체 리스트를 반환한다.
디폴트는 queryset속성값을 반환한다. 
queryset속성이 지정되지 않은 경우는 모델 매니저 클래스의 all()메소드를 호출해 QuerySet객체를 생성해 이를 반환한다.



댓글

이 블로그의 인기 게시물

(ElasticSearch) 결과에서 순서 정렬

(네트워크)폴링방식 vs 롱 폴링방식

(18장) WebSocekt과 STOMP를 사용하여 메시징하기