본문 바로가기

Development/Django

[Django] 동적 필터링

728x90

 

Django Logo

 

동적으로 받아온 URL 파라미터로 출판사를 필터링 한다면 다음처럼 하드코딩하지 않아도 됩니다.

이것을 위해 get_queryset() 메소드를 재정의할 수 있습니다. 클래스 뷰를 호출하면 self에 유용한 것들이 많이 저장됩니다. self.request 뿐만 아니라 url 설정에 따라 캡쳐된 위치(self.args)와 이름 기반(self.kwargs) 인수가 포함됩니다.

queryset은 서버를 시작할 때 단 한번만 queryset을 생성한다. 혹은 request 발생 시 한번만 queryset이 동작합니다.

반면에 get_queryset method는 매번 쿼리를 발생시킨다. 즉, get_queryset은 쿼리를 동적으로 사용하고 싶을 때 유용합니다.

728x90