代码:
Food.objects.filter(tags__name__in=["Tag 1","Tag 2","Tag 3"]).distinct()
更准确地说,如果我想过滤食物至少具有所有三个标签(不仅仅是三个中的一个或两个,但可能有多个三个(的食物,是否对文档中提供的过滤器进行了修改以实现此结果?
http://django-taggit.readthedocs.io/en/latest/api.html
尝试:
tag_list = ["Tag 1","Tag 2","Tag 3"]
一种方法是以链式方式使用多个筛选器。喜欢这个
Food.objects.filter(tags__name=tag_list[0]).filter(tags__name=tag_list[1]).filter(tags__name=tag_list[3]).distinct()
另一种方法是使用注释方法
Food.objects.filter(tags__name__in=tag_list).annotate(num_tags=Count('tags')).filter(num_tags__gte=len(tag_list)).distinct()