在此简化的示例中,我具有名为Movie
和Genre
的多对多关系模型。
模板显示了多项选择框,我可以在其中选择多个流派,这些流派作为数组返回到视图,例如genres = ['Action', 'Comedy', 'Drama']
。
现在,我需要过滤Movie
对象,该对象恰好具有这三种类型(选择的实际数量可能有所不同)。
我知道我可以使用Movie.objects.filter(genre__name__exact = 'Action')
过滤单项选择。我知道我可以使用
Movie.objects.filter(genre__name__in = ['Action', 'Comedy', 'Drama'])
,但返回的影片至少具有数组中一种流派,我不需要。
我需要的是一个电影查询集,其确切具有['动作','喜剧','戏剧'],不多也不少。
我还尝试过首先获取类型查询集:
Genre.objects.filter(name__in = ['Action', 'Comedy', 'Drama'])
,然后使用此查询集过滤Movie
对象,但我不知道它是否是
甚至可能。
我已经阅读过documentation进行查询的内容,但是没有找到解决方法。