如何在django orm中使用postgres的ARRAY

问题描述 投票:0回答:1

在 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 代码来做到这一点。

django postgresql
1个回答
0
投票

这个不是必须的,我们可以使用:

users = {
    id: (address, zip)
    for id, address, zip in User.objects.values_list('id', 'address', 'zip')
}

话虽如此,将数据存储在字典中可能不是一个好主意,并且使用 .values_list(…)

 
[Django-doc] 是一个“原始痴迷”反模式[django-antipatterns]

© www.soinside.com 2019 - 2024. All rights reserved.