在 postgresql 中,我可以将两列合并为一个数组,如下所示
SELECT id, ARRAY[address,zip] as address_array FROM user
有没有办法使用 django 的 orm 来做到这一点?为什么?我希望能够将其转换为字典映射,例如
users = dict(User.objects.values("id", "address").all())
给我一个映射:
{
1: "Address 1",
2: "Address 2",
...
...
}
最终我想要:
{
1: ["Address 1", "Zip 1"],
2: ["Address 2", "Zip 2"],
}
我正在寻找使用 django 的 orm 的解决方案,而不是 python。我知道我可以在循环查询集后使用 python 代码来做到这一点。
这个不是必须的,我们可以使用:
users = {
id: (address, zip)
for id, address, zip in User.objects.values_list('id', 'address', 'zip')
}
话虽如此,将数据存储在字典中可能不是一个好主意,并且使用 .values_list(…)
[Django-doc] 是一个“原始痴迷”反模式[django-antipatterns] 。