Taggit得到错误的标签

时间:2013-08-21 09:41:13

标签: django-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字段,名为tags ...

当我想拍摄在图纸下分类的作品的标签时,请执行 - >

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

如果有一个ID为1的图形,并且条目模型的条目ID为1.那么我得到两个项目的标签。我觉得这里有问题,但我不知道如何解决这个难题?

1 个答案:

答案 0 :(得分: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()