2013-08-21 3 views
0

저는 Category Foreign Key가있는 Work 모델이 있습니다. 내가하고있는 ->Taggit이 틀린 태그를 얻습니다.

drawingTags = Tag.objects.filter(Q(work__category__slug_en = 'drawing') | 
           Q(work__category__slug_en = 'illustration') | 
           Q(work__category__slug_en = 'sketch') | 
           Q(work__category__slug_en = 'storyboard')) 

그림에도 속하지 않은 태그가 있습니까? smt 잘못하고 있습니까?

- 편집 -

약간의 테스트를했습니다. 블로그 및 웹이라는 두 개의 응용 프로그램이 있습니다. 블로그에는 '항목'모델이 있고 웹에는 '작업'모델이 있습니다. 이들 모델은 모두 태그 이름 TaggableManager 필드가 ...

전 도면에 따라 분류 작품의 태그를 먹고 싶어

및 수행 -> A는 ID 1과 경우 도면이있는 경우

drawingTags = Tag.objects.filter(work__in = drawings).distinct() 

항목 모델은 ID가 1 인 항목을 가지고 있습니다. 두 항목의 태그보다 두 항목을 가져옵니다. 나는 여기에 문제가 있다고 생각하지만 나는 퍼즐을 푸는 방법을 모른다.

답변

0

솔루션 :

from django.contrib.contenttypes.models import ContentType 

contentType = ContentType.objects.get_for_model(Work) 
drawingTags =Tag.objects.filter(taggit_taggeditem_items__content_type=contentType, 
             work__in = drawings).distinct()