Tornando genérico um projeto de herança multi-table no Django

Primeiro de tudo, alguns links para páginas que usei como referência:Uma pergunta, e os documentos do Django sobrerelações genéricas eherança de várias tabelas.

Até agora, tenho um projeto de herança de várias tabelas configurado. Objetos (por exemplo, carro, cachorro, computador) podem herdar uma classe de item. Eu preciso ser capaz de recuperar itens do banco de dados, obter a subclasse e fazer coisas com ele. Meu design não permite recuperar os diferentes tipos de objetos um por um, portanto, preciso usar o contêiner Item para agrupá-los em um. Uma vez que eu tenho o Item, os documentos do Django dizem que eu posso pegar a subclasse referenciando o atributo com o nome do modelo (por exemplo: myitem.car ou myitem.computer).

Eu não sei qual tipo de objeto meu item está referenciando, então como posso obter o filho? Existe uma maneira integrada de fazer isso? Aqui estão algumas outras idéias que eu tive: (algumas mais loucas do que outras)

Eu estava pensando em adicionar algum tipo de GenericForeignKey ao Item que referencia a criança, mas duvido que seja legal mesmo para uma classe pai se relacionar via uma ForeignKey com uma classe filha.Eu suponho que eu poderia ter um ForeignKey (ContentType) na classe Item, e encontrar o atributo de Item para obter o filho com base no nome do ContentType.Finalmente, embora seja um método feio, posso manter uma lista de tipos de objetos e tentar cada um deles como um atributo até que um erro DoesNotExist não seja lançado.

Como você pode ver, essas soluções propostas não são tão elegantes, mas espero não ter que usar uma delas e alguém aqui possa ter uma sugestão melhor.

desde já, obrigado

questionAnswers(2)

yourAnswerToTheQuestion