我正在寻求某些模型之间选择设置的建议。一种模型中可能的选择取决于先前选择的另一种模型。
我有一个产品,我想迎合两个独立的观众,特别是本科生和同等学位的学生。我正在跟踪学校,他们的学年和这些学校的课程。在这种情况下,学生必须是新生,二年级,初中,高级或其他,如果他们是本科生,如果他们是研究生,则必须是第一,第二,第三,第四年或其他。我的问题是如何最好地设置外键选择,以便当他们的学校特别是类型为“本科”或“毕业”时,这反映在他们的年份选择中,以便他们被限制为特定于他们的学校类型的那些选择,如前所述。一些示例模型:
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
参数。如前所述,该参数取决于模型的学校。这有可能吗?我应该简单地将所有选择(即本科和研究生选择)结合起来吗?