Как использовать ARRAY от postgres в django orm
В postgresql я могу объединить два столбца в один в массив следующим образом
SELECT id, ARRAY[address,zip] as address_array FROM user
Есть ли способ сделать это с помощью orm в django? Зачем? Я хочу иметь возможность преобразовать его в диктовое отображение, например
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's orm, а не python. Я знаю, что могу сделать это с помощью кода на python после перебора набора запросов.
Это не обязательно, мы можем использовать:
users = {
id: (address, zip)
for id, address, zip in User.objects.values_list('id', 'address', 'zip')
}
That being said, it is probably not a good idea to store data in dictionaries, and using .values_list(…)
[Django-doc] is a "primitive obsession" antipattern [django-antipatterns].