我正在尝试编写一种可以从Django defaultDb返回所有用户的方法。以下结果将给我所有用户:
User.objects.all()
现在,我想将用户组添加到每个用户中,作为我的回应的一部分。我知道我可以解析每个用户并获得以下用户组:
user.groups.values_list('name',flat=True)
但是我觉得这是非常昂贵的操作,因为它涉及n个用户从Db读取n次。还有其他更好的方法吗?
答案 0 :(得分:0)
您可以使用prefetch_related在另外1个查询中提取所有相关组
User.objects.prefetch_related('groups')
现在,您可以遍历所有用户,然后访问每个用户组,而无需进行其他数据库访问