我有一个模型ArmCodeMapping
class ArmCodeMapping(models.Model):
arm_id = models.CharField(max_length = 255)
code = models.CharField(max_length = 255, unique = True)
记录如下: -
arm_id , code
1,abc
1,def
1,ghi
1,werer
2,xyz
2,ghynn
等等。
我想写一个查询,它会返回由arm_id分组的代码,即我期待以下输出。
{1:[abc,def,ghi,werer],2:[xyz,ghynn]}
我可以使用FOR循环查询模型来生成上面的内容,但我想知道是否有相同的直接查询?
答案 0 :(得分:1)
我会说values_list
与defaultdict
结合使用,这样您就不必创建模型实例。 QuerySets仅返回对象实例或列表实例。
d = defaultdict(list)
qset = ArmCodeMapping.objects.values_list('arm_id', 'code')
for item in qset:
d[item[0]].append(item[1])
现在变量d填充了你想要的结果。