Concatenação de um campo relacionado a várias linhas de um registro na consulta definida no Django
Eu tenho que modelos com uma relação de muitos com os quais tento distinguir o tipo de meus registros. Digamos que o primeiro modelo é dedicado às informações do livro e o segundo modelo é de alguns tipos, como A, B, C e existe uma relação indireta da tabela Tipo para o livro, portanto, cada livro pode ser A, B ou C ou qualquer combinação possível de Tipos. Quero usar a concatenação (ou qualquer outra função possível na anotação para reunir todos os tipos em um campo).
Book.objects.all(
).annotate(
Types = F('TableRelation__Type__Name')
).annotate(
CombinedTypes = Concat('Types')
)
que gera um erro, pois apenas um argumento é passado para ser concatenado. O resultado que estou procurando é um campo CombinedTypes preenchido com "ABAB" para qualquer ID exclusivo do Book que mostre que esse registro é um "AB" (ou qualquer outra combinação de A, B e C).
Como posso conseguir isso?