PoY*_*era 3 django django-models django-queryset
我使用查询集从城市获取用户列表:
usuarios = Usuario.objects.filter(municipio=muni).exclude(user_id = ide)
Run Code Online (Sandbox Code Playgroud)
所以我得到类似的信息:
[Usuario:user1,Usuario:user2,Usuario:user3]
这很好,但我需要做另一个查询集来获取他们的设备
for usuario in usuarios:
devices = GCMDevice.objects.filter(user_id=usuario.user.id)
Run Code Online (Sandbox Code Playgroud)
我只从最后一个用户(usuario)那里得到最后一个设备:
[GCMDevice:三星]
有人知道我如何从该用户那里获取所有设备吗?
还有更多选择。将其放入以用户 ID 为键的字典中:
for usuario in usuarios:
devices[usario.user.id] = GCMDevice.objects.filter(user_id=usuario.user.id)
Run Code Online (Sandbox Code Playgroud)
但这对数据库来说有点苛刻,因为它做了太多的查询。因此,您可以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)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12408 次 |
最近记录: |