我正在写一个网站来托管一所大学的在线教育材料。我正在使用以下数据模型:
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
每个资源子类(教学大纲、家庭作业等)都通过基础 Resource 类中的 Course 外键与一门课程相关联。我想为 Syllabus 子类强制外键的唯一性(即每门课程只允许一个教学大纲),而不是其他子类,并保持类层次结构完整。
我尝试四处寻找解决方案,但我找不到任何看起来很有希望的东西,尽管这可能是我缺乏 Django 经验的阻碍。我将不胜感激任何快速帮助。