인프런 커뮤니티 질문&답변

쑤시리님의 프로필 이미지
쑤시리

작성한 질문수

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

get_context_data부분 get_queryset으로 대체가능한가요?

작성

·

372

0

여기 ProjectDetailView에서 get_queryset으로 

get_context_data부분의 objectlist부분을 윗사진처럼 get_queryset으로 바꿔서 리턴해주면 똑같이 동작하나요?

답변 1

1

Hyong Sok Park님의 프로필 이미지
Hyong Sok Park
지식공유자

안녕하세요!
질문 확인했습니다.

너무 답변이 늦었습니다. ㅠㅠ
생업이 원체 바쁘다 보니 답변이 늦어진 점 죄송하다는 말씀 드릴게요.

아무튼 답변 드리겠습니다.

일단 먼저 되는지 안되는지 부터 말씀드리자면 
위의 코드로는 정상적인 진행이 되지 않을 것으로 보입니다.

일단 DetailView 기반으로 저희가 ProjectDetailView 로직을 작성했는데,
이때 get_queryset을 통해 변경이 되는 쿼리셋은 
DetailView 에서 사용하는 단일 객체가 됩니다.

만약 저희가 작성한 코드가 DetailView 가 아니라 ListView 였다면
get_queryset을 수정하는 방식으로 구현이 가능했겠으나,
DetailView 이기 때문에 되지 않는다는 점 확인드립니다.

좀 더 정확한 get_queryset 메서드에 대한 설명을 확인하시려면
공식문서 링크를 첨부해드리니 한번 확인해보시길 바랍니다.

아래는 DetailView 에서 사용되는 get_queryset 메서드

https://docs.djangoproject.com/en/3.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin.get_queryset


그리고 이 아래는 ListView 에서 사용되는 get_queryset 메서드입니다.

https://docs.djangoproject.com/en/3.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin.get_queryset


두 개의 View 에서 사용하는 메서드가 각각 다르기 때문에 한번 확인해보시길 바랍니다.

좋은하루 보내시길 바랍니다!
감사합니다-

쑤시리님의 프로필 이미지
쑤시리

작성한 질문수

질문하기