我正在写一个网站来托管大学的在线教育资料。我正在使用以下数据模型:
class Department(models.Model):
#snip - remaining fields involve department names, acronyms, etc.
class Course(models.Model):
department = models.ForeignKey(Department)
#snip
class Resource(models.Model):
# generic class for course syllabuses, exams, homework, and other documents
course = models.ForeignKey(Course)
class Syllabus(Resource):
#snip - fields for titles, URLs, and the like
class Homework(Resource):
#snip - similar fields to above
# and other similar subclasses
每个资源子类(教学大纲,家庭作业等)都通过基础资源类中的课程外键与一门课程相关联。我想强制使用Syllabus子类的外键的唯一性(即每个课程只允许一个教学大纲),但不允许其他子类,并保持类层次结构不变。
我试图寻找解决方案,但我找不到任何看似有希望的东西,尽管可能是我缺乏Django经验。我很感激你的帮助。