Django:列表中每个查询的Django过滤器queryset [英] Django: Django filter queryset for each query in list
本文介绍了Django:列表中每个查询的Django过滤器queryset的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含过滤器查询的列表.我想在Django过滤器queryset上运行该查询.
I have a list with filter queries. I want to run that queries on django filter queryset.
这是我的代码
query_list = []
if len(stream_list) != 0:
stream_query = reduce(lambda x, y: x | y, [Q(course__stream__contains=word) for word in stream_list])
query_list.append(stream_query)
if len(state_list) != 0:
state_query = reduce(lambda x, y: x | y, [Q(college_name__contains=word) for word in state_list])
query_list.append(state_query)
if len(duration_list)!= 0:
duration_query = reduce(lambda x, y: x | y, [Q(course__program_details__contains=word) for word in duration_list])
query_list.append(duration_query)
现在我想在Django过滤器queryset的query_list中运行查询
now i want to run queries in query_list on django filter queryset
喜欢
clg_list = College.objects.filter(stream_query, state_query, duration_query)
我该怎么做.
推荐答案
如我所见,您的 stream
, state
和 duration
查询是 Q
对象.因此,您应该能够像这样混合它们:
As I can see, your stream
, state
and duration
queries are Q
objects. So you should be able to mix them like this:
clg_list = College.objects.filter(reduce(lambda x, y: x & y, query_list))
这篇关于Django:列表中每个查询的Django过滤器queryset的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文