python - django的queryset用reduce方法合并问题。
PHP中文网
PHP中文网 2017-04-17 12:06:06
0
0
946

我现在有一个数量未知的组,然后想找出每个组的人。数据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得到的结果会变少,是哪个地方写错了吗?

PHP中文网
PHP中文网

认证0级讲师

reply all(0)
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template