장고 공식문서 Making Quesies 중 Spanning multi-valued relationships절에 대한 해석이다.
다대다 관계, 혹은 일대다 관계에서 일에 해당하는 테이블의 인스턴스를 추출할 때는 쿼리 문장의 중의성에 의해 아래 예시와 같은 문제가 발생한다.
블로그
와 글
이라는 두 모델이 일대다 관계성을 가진다고 하자.2008년에 쓰이고 "Lennon"이 포함된 제목의 글을 가지는 블로그 인스턴스를 추출하라.
위 쿼리는 중의적으로 해석된다.
1에 해당하는 코드는 아래와 같다.
Blog.objects.filter(entry__headline__contains='Lennon', entry__pub_date__year=2008)
2에 해당하는 코드는 아래와 같다.
Blog.objects.filter(entry__headline__contains='Lennon', entry__pub_date__year=2008)
구체적인 모델 필드와 설명은 공식문서에 있다.