представленный @Ahmad в комментариях.

я есть модели с отношением один ко многим, с которыми я пытаюсь различить тип моих записей. Допустим, первая модель посвящена информации о книге, а вторая модель имеет некоторые типы, такие как A, B, C, и существует косвенная связь между таблицей типов и книгой, поэтому каждая книга может быть A, B или C или любой возможной комбинацией Типы. Я хочу использовать конкатенацию (или любую другую возможную функцию в аннотации, чтобы собрать все типы в поле).

Book.objects.all(
).annotate(
    Types = F('TableRelation__Type__Name')
).annotate(
    CombinedTypes = Concat('Types')
)

который выдает ошибку, поскольку передается только один аргумент для конкатенации. Результат, который я ищу, - это поле CombinedTypes, заполненное «ABAB» для любого уникального идентификатора Book, которое показывает, что эта запись представляет собой «AB» (или любую другую комбинацию A, B и C).

Как мне этого добиться?

 Azee04 янв. 2018 г., 08:55
Спасибо за подсказки @ Ахмад. Я проверю ссылки и сообщу результат.
 Ahmad04 янв. 2018 г., 08:33
Вы читали некоторые документы, такие какСоздание ваших собственных агрегатных функций и / илиhttp://harkablog.com/inside-the-django-orm-aggregates.html и / илиhttps://stackoverflow.com/questions/10340684/group-concat-equivalent-in-django ? Вы можете переопределить что-то вроде функции Concat, чтобы достичь своей цели.

Ответы на вопрос(1)

Решение Вопроса

это Ответ переполнения стека вПочта представленный @Ahmad в комментариях.

Ваш ответ на вопрос