在Django子类中强制使用唯一的外键但不在基类中强制执行

时间:2012-12-09 09:33:09

标签: python django django-models

我正在写一个网站来托管大学的在线教育资料。我正在使用以下数据模型:

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经验。我很感激你的帮助。

1 个答案:

答案 0 :(得分:0)

如何使用它:one to one relationships