使用ManyToManyField时出现孤立的行?

时间:2015-02-10 21:10:27

标签: peewee

我将从文档中解释一下这个例子。

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是如此新鲜,所以没有太多关于它的外部信息。

1 个答案:

答案 0 :(得分:0)

如果您在清除所有相关学生时决定要删除课程,则必须明确地处理该课程。