django的queryset用reduce方法合并问题。
我现在有一个数量未知的组,然后想找出每个组的人。数据model如下:
class People(models.Model):
group = models.ForeignKey('Group')
class Group(models.Model):
pass
代码中有一个Group的querysets(长度未知),为gs,然后想要找到所有对应的people。
我开始用的是reduce来做的。
return reduce(lambda x,y: People.objects.filter(group=x)|People.objects.filter(group=y),gs)
这个返回的结果数量很少,在我的环境下一共才有25个people。
然后我用循环的方法来获取people的集合。
res =Peopleo.objects.none()
for g in gs:
res = res | People.objects.filter(group=g)
return res
这种方法返回的结果是对的,返回了3000个people。
我想请问,为什么使用reduce得到的结果会变少,是哪个地方写错了吗?
calfn
11 years ago