我将从文档中解释一下这个例子。
class Student(BaseModel):
name = CharField()
class Course(BaseModel):
name = CharField()
students = ManyToManyField(Student, related_name='courses')
StudentCourse = Course.students.get_through_model()
在某些时候,我想从数据库中完全删除学生。现在分两步完成:
student.courses.clear()
student.delete_instance()
这将按预期删除StudentCourse
到表中的行,并保留Course
表中的行。如果其他学生仍然使用这门课程,那就足够了但是,如果我想要删除该课程,如果该学生是唯一一个使用它的人呢?
我是否需要一些额外的逻辑来实现这一点,还是应该以某种方式对我进行处理?我在这一点上有点困惑,因为ManyToManyField
是如此新鲜,所以没有太多关于它的外部信息。
答案 0 :(得分:0)
如果您在清除所有相关学生时决定要删除课程,则必须明确地处理该课程。