两个模型之间的Django多对多关系

时间:2016-12-16 18:55:25

标签: python django

我正在构建一个网络应用程序来帮助我管理我的课程。所以我有一个班级模型和一个学生模型,我希望每个班级都有多个学生,我希望每个学生都能够注册多个班级:

class Class(models.Model):

name = models.CharField(max_length=30)
enrolled_students = models.ManyToManyField('Student', blank=True)

...

class Student(models.Model):
enrolled_classes = models.ManyToManyField(Class, blank=True)

这很好但是很乏味。我创建了一个类,然后创建了一个学生并添加了已注册的类。然后我必须回到课堂上并注册学生。如何自动化这个过程,以便Django自动跟踪哪些学生在哪些课程和哪些课程中有哪些学生注册?

我确信有一些简单的东西我缺少或不理解。

1 个答案:

答案 0 :(得分:0)

根本没有必要这样做。所有关系字段(包括多对多字段)都会自动添加向后访问者。只需在关系的一侧定义字段;例如,如果您在Class上定义它,则可以将学生注册的班级称为my_student.class_set.all()