首页 > 解决方案 > 检查查询集是否是另一个查询集的子集的最佳方法是什么?

问题描述

如果有两个查询集q1q2,检查是否q1是 的子集的最佳方法是q2什么?还是我必须迭代它们的值?

q1_id = q1.values_list('id', flat=True)
q2_id = q2.values_list('id', flat=True)
all([x in q2 for x in q1])

标签: django

解决方案


你可以set用来检查这个:

q1_id = set(q1.values_list('id', flat=True))
q2_id = set(q2.values_list('id', flat=True))
issubset = q1_id.issubset(q2_id)

推荐阅读