【发布时间】:2013-08-12 06:08:57
【问题描述】:
我有一个表流派,在“名称”列下有 Drana、Thriller、Sci-fi 等值。和另一张表电影。 在电影表流派中,流派表是 ManyTOManyField
场景
movie_1 = {D,S, T}
movie_2 = {S,T}
movie_3 = {D}
movie_4 = {D, T}
D:戏剧,S:科幻,T:惊悚
案例 1: 假设用户选择了 D 和 T(它们是复选框选项)
all D movies : movie_1, movie_3, movie_4 ---(a)
all T movies : movie_1, movie_2, movie_4 ---(b)
当用户选择这些选项时: 我想显示movie_1、movie_2、movie_3、movie_4,它是(a) 和(b) 的交集 对于上述情况,可以进行如下查询:
qs_d = Genre.objects.get(name="Drama")
qs_t = Genre.objects.get(name="Thriller")
m_d = Movies.objects.filter( Q(gen__id=qs_d.id) | Q(gen__id=qs_t.id)).distinct()
for movie_name in m_d:
print movie_name
在上面的查询中,我已经硬编码了“戏剧”和“惊悚片”类型(用于解释),但是
根据用户选择的选项数量,我将在 {"Drama"、"Comedy"、"Thriller"} 等列表中获取电影类型,在这种情况下,我该如何构建查询?
【问题讨论】:
标签: django