Django:Django筛选器查询为列表中的每个查询设置

Django:Django筛选器查询为列表中的每个查询设置,django,Django,我有一个过滤器查询列表。我想在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)

我有一个过滤器查询列表。我想在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 filter queryset上的query_列表中运行查询

那样

clg_list = College.objects.filter(stream_query, state_query, duration_query)

我该怎么做。

如我所见,您的
状态
持续时间
查询都是
Q
对象。所以你应该可以这样混合它们:

clg_list = College.objects.filter(reduce(lambda x, y: x & y, query_list))

如我所见,您的
状态
持续时间
查询都是
Q
对象。所以你应该可以这样混合它们:

clg_list = College.objects.filter(reduce(lambda x, y: x & y, query_list))