반응형
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) 이렇게 속성값으로 작성하는것도 가능한데, 두개의 차이점은 여기 블로그에서 확인할 수 있다.
반응형
'Today I Learned > django' 카테고리의 다른 글
장고 (django) 캐시 사용하기 (memcached) (0) | 2023.08.31 |
---|---|
장고 (django) 클래스 기반 뷰에서 믹스인 사용하기 (mixin) (0) | 2023.08.29 |
장고 (django) model multiple select choices (항목 여러개 선택하는 모델 만들기) (0) | 2023.08.23 |
(장고) ORM tutorial #4. ManyToManyField() (0) | 2023.08.21 |
(장고) ORM tutorial #3. OneToMany, ForeignKey() (0) | 2023.08.21 |