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) 이렇게 속성값으로 작성하는것도 가능한데, 두개의 차이점은 여기 블로그에서 확인할 수 있다.
반응형