학습주제
Django Shell 모델 관계 기반 필터링
학습내용
필터를 하는 새로운 방법 2가지.
예: 질문 내용에 "휴가" 단어가 들어간 모든 초이스들을 불러오기
현재 어떤 질문과 연관되어 있는지 잘 모르기에, choice을 문자열로 표현할 때 어떤 질문인지도 나타내게 한다.
어떤 질문에 대한 초이스들인지 알 수 있어서 편하다.
장고 셀은 자동 로드가 없기에 껐다 켜야함.
Choice.objects.filter(question__question_text__startswith="휴가")
필터를 할 때 question -> question_text -> startswith = "휴가"
쿼리를 살펴보면,
polls_choice가 INNER JOIN을 polls_question과 한다.
우선 간단한 필터 생성.
이 휴가가 없는, 즉 반대되는 조건을 뽑아내고 싶을 때 exclue
사용
Question.objects.exclude(question_text__startswith="휴가")
쿼리문의 차이는,
WHERE 뒤에 NOT이 붙는다.
모델 관계를 통해 접근하는 경우에도 exclude 사용 가능하다.