14. Django 모델 관계기반 필터링

data_hamster·2023년 4월 25일
0

학습주제
Django Shell 모델 관계 기반 필터링

학습내용

필터를 하는 새로운 방법 2가지.

모델 사이 관계에 의한 필터

예: 질문 내용에 "휴가" 단어가 들어간 모든 초이스들을 불러오기


현재 어떤 질문과 연관되어 있는지 잘 모르기에, choice을 문자열로 표현할 때 어떤 질문인지도 나타내게 한다.

어떤 질문에 대한 초이스들인지 알 수 있어서 편하다.
장고 셀은 자동 로드가 없기에 껐다 켜야함.

Choice.objects.filter(question__question_text__startswith="휴가")

필터를 할 때 question -> question_text -> startswith = "휴가"

쿼리를 살펴보면,

polls_choice가 INNER JOIN을 polls_question과 한다.

exclude

우선 간단한 필터 생성.

이 휴가가 없는, 즉 반대되는 조건을 뽑아내고 싶을 때 exclue 사용
Question.objects.exclude(question_text__startswith="휴가")

쿼리문의 차이는,

WHERE 뒤에 NOT이 붙는다.


모델 관계를 통해 접근하는 경우에도 exclude 사용 가능하다.

profile
반갑습니다 햄스터 좋아합니다

0개의 댓글