2010-11-24 84 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