繁体   English   中英

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

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

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

视图中的数据 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 ))

创建过滤器以查看类别是否属于一组类别的成员的一种简单方法是使用双下划线name__in表单进行字段查找,如

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM