2011-07-25 62 views
0

我想创建一个主题模型。 这种模式将有一个外键,非必需的,它 上面的话题,例如:Django,主题模型与子主题

iPhone有一个外键苹果

,但我做了什么,如果我想苹果被链接到所有它的子元素

苹果iPhone 苹果MAC

的我知道,有很多到很多领域,但你究竟如何将其应用到当前 情况

此外mac或iPhone甚至可能有更多的子元素

回答

2

你可能想看看related_name的文档。基本上Django为你做这个。例如:

class Topic(models.Model): 
    master_topic = models.ForeignKey('self', 
        null=True, 
        blank=True, 
        related_name="sub_topics") 

然后访问该代码:

apple = Topic.objects.filter(tag='Apple') 
sub_topics = apple.sub_topics.all() ## Gets all sub_topics. 
+0

我将要检查出来感谢 – cwoebker

+0

似乎是正确的选择,但有一点,因为现在当我尝试创建一个新的主题我需要选择一个主题,但没有,因为我没有创建一个,但只是需要= false来解决这个问题? – cwoebker

+0

应该工作。我忘了将其添加到模型定义中。 –