大学向けのオンライン教材をホストする Web サイトを作成しています。次のデータモデルを使用しています。
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 外部キーを介して 1 つのコースに関連付けられます。シラバス サブクラスの外部キーの一意性を強制したい (つまり、コースごとに 1 つのシラバスのみを許可する) が、他のサブクラスには適用せず、クラス階層をそのまま維持したい。
解決策を探してみましたが、私の Django の経験不足が邪魔をしている可能性もありますが、有望と思われるものは見つかりませんでした。迅速な助けをいただければ幸いです。