Today I Learned/django

장고 (django) get_queryset() 역할

하나719 2023. 8. 29. 15:41
반응형

get_queryset()

데이터베이스에서 조회된 결과를 반환하는 쿼리셋을 커스텀하는데 사용되는 메서드로 보통 클래스 기반 뷰에서 사용된다. 

주로 ListView에서 보여질 리스트 항목을 필터링 또는 정렬하는데 사용된다.

 

예를들어 todo list를 출력할 때 로그인한 유저의 목록만 가져온다던지, 상품 관리 리스트에서 로그인한 판매자의 품목만 가져온다던지 하는 등에 유용하게 사용 된다. 

 

from django.views.generic import ListView
from .model import Todo

class TodoListView(ListView):
	model = Todo 
    
    def get_queryset(self):
    	qs = super().get_queryset() 
        
    	#원하는 쿼리셋 로직을 작성하여 반환
        return qs.filter(owner = self.request.user)

 

(+) 

get_queryset() 함수로 작성하지 않고 queryset = Todo.objects.filter(owner = self.request.user) 이렇게 속성값으로 작성하는것도 가능한데, 두개의 차이점은 여기 블로그에서 확인할 수 있다. 

 

 

참고 링크 

반응형