有没有一种方法可以通过 django 查询中的 x 中的任何一个进行过滤

Is there a way I can filter by any one of x in a django query

在我的 webwapp 中,我希望用户能够通过从 sidebar 中选择类别来过滤搜索结果。

视图中的数据 GET 请求检索所选选项的列表并解析出来。然后将要过滤的数据分成列表,如 views.py 中索引的以下片段所示:

class Index(View):
    def get(request):
        ... some checks to ensure its a valid request...
        if valid:
            dietTypeList = request.GET.getlist('diettype[]') #['meat','vegetarian',...] 
            categoryList = request.GET.getlist('categories[]') #['Italian','Western',...]
            ....
            return render(request,'results.html',context_dict)
        ....

然后我想在 .filter() 过滤功能中过滤结果,以便我的结果是任何选定的类别,以及应用于这些类别的任何饮食类型。

我已经查看了 Q 查询,但是我不确定在任何情况下如何执行以下操作 我如何有效地执行以下操作:

results = Recipe.objects.filter(Q(name__contains=searchCriteria) & Q(category=any of categoryTypeList ))

创建过滤器以查看某个类别是否属于一组类别的成员的一种简单方法是使用 double-underscore name__in 表单进行字段查找,如

results = Recipe.objects.filter(category__in=some_set_of_categories)