2013-08-21 24 views
0

我有一个具有Category外键的工作模型。我正在做 - >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')) 

我还得到了不属于图纸的标签?我做错了吗?

- 编辑 -

我做了一个小测试。我有两个名为blog和web的应用程序。 在博客中,我有'入门'模型,在网络中我有'工作'模型。这两个模型有一个名为标签TaggableManager领域...

当我想利用在图纸归类作品的标签并做 - >

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

如果有ID为1,如果一个绘图入口模型有一个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()