Django建模问题,需要外键字段的子集

4 投票
1 回答
1586 浏览
提问于 2025-04-16 07:31

我打算创建一个应用程序,用于管理不同的类别,比如页面、画廊、产品类型等,每个类别都有自己的一套词汇。所以我需要两个模型,一个是词汇(vocabulary),另一个是类别(category)。

在我的类别/models.py代码中,可能会写成这样:

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

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

在我的页面、博客、画廊等应用中,我需要一个外键字段来关联这些类别:

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

这样的话,所有可用的类别都会在管理应用中列出来。如果我有一个产品,我希望只显示产品类别。那我该如何把可用的类别过滤到特定的词汇中呢?

我正在学习Django,但不太确定该从哪里开始。也许我的模型设计得不太对?如果有现成的应用可以参考,请告诉我。

1 个回答

9

像这样对选择项进行过滤,通常是通过使用查询集来实现的,或者在管理界面中使用limit_choices_to来限制选择。

撰写回答