1

我正在寻求有关在某些模型之间设置选择的建议。一个模型中可能的选择取决于先前选择的另一个模型的选择。

我有一个产品,我想迎合两个不同的受众,特别是本科生和同等研究生。我正在跟踪学校、他们的年级和这些学校的课程。在此设置中,如果学生是本科生,则必须是大一、大二、大三、大四或其他,如果他们是研究生,则必须是大一、二年级、大三、四年级或其他。我的问题是如何最好地设置外键选择,以便当他们的学校具体属于“本科”或“研究生”类型时,这会反映在他们的年份选择中,这样他们就会被限制为之前指定的特定于他们学校类型的选择. 一些示例模型:

class StudentType(models.Model):
    STUDENT_TYPE_CHOICES = (
        ('graduate', 'Graduate'),
        ('undergrad', 'Undergraduate'),
    )
    name = models.CharField(max_length=100, choices=STUDENT_TYPE_CHOICES)


class School(models.Model):
    name = models.CharField(max_length=100, unique=True)
    student_type = models.ForeignKey(StudentType)


class Year(models.Model):
    name = models.CharField(max_length=100, choices=????)
    school = models.ForeignKey(School, related_name="years")

我将不胜感激填写choices年份模型的名称列的参数。如前所述,此参数取决于模型的学校。这是一种可能吗?我应该简单地将所有选择(即本科和研究生院的选择)结合在一起吗?

4

0 回答 0