0

我有一个带有类别外键的工作模型。我在做 -->

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 的条目。那么我得到两个项目的标签。我认为这里有问题,但我不知道如何解决这个难题?

4

1 回答 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()
于 2013-08-22T09:25:58.987 回答