假设我可以拥有这些字符串列表(我已经知道如何从用户那里获得这些字符串列表):{"title, "year", "stars"}
和{"title"}
。如果我从用户那里得到了第一个,则我想过滤Movie对象,使其工作方式类似于:
Movie.objects.filter(Q(title__icontains=query) | Q(year__icontains=query) |Q(stars__icontains=query))
。如果我从用户那里得到第二个,就像
Movie.objects.filter(Q(title__icontains=query)
我们已经确保列表中的字符串是模型字段。
答案 0 :(得分:2)
说得到的列表名称是filterList。因此,您可以尝试以下
q_obj = Q()
for filter in filterList:
q_obj |= Q(filter__icontains=query)
movies = Movie.objects.filter(q_obj)