Как использовать 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].

Вернуться на верх