我正在寻求有关在某些模型之间设置选择的建议。一个模型中可能的选择取决于先前选择的另一个模型的选择。
我有一个产品,我想迎合两个不同的受众,特别是本科生和同等研究生。我正在跟踪学校、他们的年级和这些学校的课程。在此设置中,如果学生是本科生,则必须是大一、大二、大三、大四或其他,如果他们是研究生,则必须是大一、二年级、大三、四年级或其他。我的问题是如何最好地设置外键选择,以便当他们的学校具体属于“本科”或“研究生”类型时,这会反映在他们的年份选择中,这样他们就会被限制为之前指定的特定于他们学校类型的选择. 一些示例模型:
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
年份模型的名称列的参数。如前所述,此参数取决于模型的学校。这是一种可能吗?我应该简单地将所有选择(即本科和研究生院的选择)结合在一起吗?