我使用查询集从城市获取用户列表:
usuarios = Usuario.objects.filter(municipio=muni).exclude(user_id = ide)
所以我得到类似的东西:
[Usuario:user1,Usuario:user2,Usuario:user3]
这很好,但我需要做另一个查询集来获取他们的设备
for usuario in usuarios:
devices = GCMDevice.objects.filter(user_id=usuario.user.id)
我只获得了上一个用户(usuario)中的最后一个设备:
[GCMDevice:samsung]
任何人都知道如何从该用户那里获得所有设备?
答案 0 :(得分:3)
还有更多选择。 将其放入字典中,并将用户的ID作为键:
for usuario in usuarios:
devices[usario.user.id] = GCMDevice.objects.filter(user_id=usuario.user.id)
但这对DB有点要求,因为它做了太多查询。因此,您可以通过单个查询获取所有DCMDevice
条记录:
user_ids = Usuario.objects.filter(municipio=muni).exclude(user_id=ide).values_list('user_id', flat=True)
devices = GCMDevice.objects.filter(user_id__in=user_ids)