2010-11-24 81 views
2

我打算創建一個類別的應用程序,這些類別將爲頁面,圖庫,產品類型等設置單獨的類別集(詞彙表)。因此需要有兩個模型,詞彙表和類別。Django建模問題,需要一個外鍵字段的子集

類別/ models.py代碼可能是這樣的:

class Vocabulary(models.Model): 
    title = models.CharField() 

class Category(models.Model): 
    title = models.CharField() 
    vocabulary = models.ForeignKey(Vocabulary) 

從我的網頁,博客,圖庫等應用程式我怎麼會需要一個ForeignKey字段類別:

class Page(models.Model): 
    title = models.CharField() 
    content = models.TextField() 
    category = models.ForeignKey('categories.Category') 

這當然會列出管理應用程序中的所有可用類別。如果我有產品,我只希望產品類別可用。如何將可用類別過濾到特定詞彙表中?

我在學習Django,不確定從哪裏開始。也許我的整個模型都是錯的?如果有任何應用程序已經這樣做,請讓我知道。

回答

5

這樣的選擇過濾以using a queryset的形式完成,或者在管理界面中使用limit_choices_to進行過濾。

+1

limit_choices_to在我的模型中使用,而不是根據文檔admin.py。這很好,API中已經存在的東西。 – Keyo 2010-11-24 05:15:46