Django queryset过滤manytomany字段的麻烦

时间:2013-08-16 14:26:47

标签: django model django-queryset

我有一个ManyToMany字段,比如模型tags的{​​{1}}。现在有一个查询来选择Article包含X1和X2以及X3的所有Article ...其中X1,X2,X3 ...是tags个对象。如何才能获得具有最终结果的查询集?

更正式:

Tag

1 个答案:

答案 0 :(得分:0)

由于您正在寻找特定文章的所有标记,因此您可以使用the Q filter然后链接Q

tags = ['X1', 'X2', 'X3']
qs = [Q(tags__name=tag.name) for tag in tags]

query = qs.pop() #get the first element

for q in qs:
    query &= q

articles = Article.objects.filter(query)