riando consultas eficientes de banco de dados para modelos hierárquicos (djang
Considere este modelo (django):
class Source(models.Model):
# Some other fields
type = models.ForeignKey('Type')
class Type(models.Model):
# Some other fields
parent = models.ForeignKey('self')
Este modelo possui uma chave estrangeira, criando assim uma hierarqui
Digamos que tenhamos a seguinte hierarquia:
Website
Blog
News
Social Network
Q&A
Forum
Radio
Government radio
Pirate radio
Commercial radio
Internet radio
Como faço uma consulta eficiente para que, se eu selecionarSource
deType
, Eu também recuperoSources
que têm umType
esse é um filho do tipo especificado?
Tentei atravessar a árvore inteira, mas isso obviamente não é muito eficient
Outra opção seria usar o ManyToManyField e anexar automaticamente os Tipos pai, substituindo o método save (). Por exemplo, se 'blog' for selecionado, também será criado um registro para 'site'. Mas isso parece um exagero para mi