搜索

首页  >  问答  >  正文

python - 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得到的结果会变少,是哪个地方写错了吗?

PHP中文网PHP中文网2778 天前949

全部回复(0)我来回复

暂无回复
  • 取消回复