Django 模型中外键之间的关系

Django 模型中外键之间的关系,django,django-models,Django,Django Models,我是Django的新手,所以请原谅,如果这是一个简单的问题,但我很难用措辞来表达。我已经找了很久的答案了 假设我正在构建一个非常简单的成绩册应用程序 models.py(代码为ommited) 有没有一种方法可以设置models.py,这样如果我向课程中添加作业,它会自动将作业关联到课程中注册的所有学生?有多种方法可以实现此结果。您可以使用连接一个新作业的post_save操作来触发将该作业复制到课程中的每个学生 或者,当调用save时,您也可以使用模型的一部分直接执行相同的操作 或者您可以在模

我是Django的新手,所以请原谅,如果这是一个简单的问题,但我很难用措辞来表达。我已经找了很久的答案了

假设我正在构建一个非常简单的成绩册应用程序

models.py(代码为ommited)


有没有一种方法可以设置models.py,这样如果我向课程中添加作业,它会自动将作业关联到课程中注册的所有学生?

有多种方法可以实现此结果。您可以使用连接一个新作业的post_save操作来触发将该作业复制到课程中的每个学生

或者,当调用save时,您也可以使用模型的一部分直接执行相同的操作

或者您可以在模型上创建一个实用类型的classmethod,比如create\u assignment\u for\u course。因为这也会出现在课程实例中,所以一般的方法是将其放在上面。管理器位于Model.object属性中。 当然,在为整个课程创建作业时,您必须特别使用classmethod/manager方法

class Course(models.Model):
    ...

class Student(models.Model):
    students = models.ManyToManyField(Course)
    ...

class Assignment(models.Model):
    course = models.ForeignKey(Course)
    student = models.ForeignKey(Student)
    ...