如何在DJANGO中合并多个查询集
发布时间:2020-12-20 11:35:31 所属栏目:Python 来源:网络整理
导读:参见英文答案 How to combine 2 or more querysets in a Django view?????????????????????????????????????10个 我必须在下面的单个列表中合并查询集: result_list_1 = Col.objects.defer("tags").filter(producer__username__icontains=crit) result_list
参见英文答案 >
How to combine 2 or more querysets in a Django view?????????????????????????????????????10个
我必须在下面的单个列表中合并查询集: result_list_1 = Col.objects.defer("tags").filter(producer__username__icontains=crit) result_list_2 = Col.objects.defer("tags").filter(name__icontains=crit) result_list_3 = Col.objects.defer("tags").filter(description__icontains=crit) result_list_4 = Col.objects.filter(tags__name__icontains=crit) ... 每个result_list都包含项目,这些项目具有唯一的数字ID,可用于确保没有重复项. 我不能用|同时查询DB或Q对象. 如何将结果集合并到一个列表中? 解决方法
如何对itertools.chain稍作修改,以确保您不会遭遇欺骗:
def unique_chain(*iterables): known_ids = set() for it in iterables: for element in it: if element.id not in known_ids: known_ids.add(element.id) yield element 有了它,您可以创建组合列表: combined_list = list(unique_chain(result_list_1,result_list_2,... )) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |