假设我有以下型号
class Photo(models.Model):
tags = models.ManyToManyField(Tag)
class Tag(models.Model):
name = models.CharField(max_length=50)
在一个视图中,我有一个带有活动过滤器的列表,称为category。我想过滤所有具有类别标签的照片对象。
我试过了:
Photo.objects.filter(tags__name__in=categories)
但这匹配类别中的任何项目,而不是所有项目。
因此,如果类别为['holiday','summer'],则我希望Photo带有假日和夏季标签。
能做到吗?
6
也许:qs = Photo.objects.all(); 用于类别中的类别:qs = qs.filter(tags__name = category)
—
jpic 2011年
jpic是正确的,
—
Davor Lucic
Photo.objects.filter(tags__name='holiday').filter(tags__name='summer')
是要走的路。(这与jpic的示例相同)。每个查询filter
都应添加更多JOIN
s,因此如果它们太多,则可以采用注释方法。
你可能会认为那里是一个内置的由Django的功能此
—
文森特