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

questionAnswers(3)

yourAnswerToTheQuestion