如何使用Q来过滤字符串

时间:2020-06-10 05:24:04

标签: django python-3.x

假设我可以拥有这些字符串列表(我已经知道如何从用户那里获得这些字符串列表):{"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)

我们已经确保列表中的字符串是模型字段。

1 个答案:

答案 0 :(得分:2)

说得到的列表名称是filterList。因此,您可以尝试以下

q_obj = Q()
for filter in filterList:
    q_obj |= Q(filter__icontains=query)

movies = Movie.objects.filter(q_obj)

相关问题