2011-07-25 69 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

應該工作。我忘了將其添加到模型定義中。 –