检查查询集是否为另一个子集的最佳方法是什么?

时间:2018-10-19 03:41:18

标签: django

如果有两个查询集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])

1 个答案:

答案 0 :(得分:1)

您可以使用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)