Django:列表中每个查询的Django过滤器queryset [英] Django: Django filter queryset for each query in list

查看:57
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆