我在 MySql 中有两个使用 django 模型创建的表。一个是学生模型,另一个是出勤模型。
class Attendance(BaseModel):
stu = models.ForeignKey(Students, verbose_name=_("Student"))
我没有将“on_delete=models.PROTECT”放入出勤类中的stu,因为如果该学生在出勤中被定义为来自学生类的外键,我需要能够在没有保护警告的情况下删除学生对象。
现在,当我删除学生对象时,考勤中的外键连接记录也会被删除。
我想做的是,我想在没有警告的情况下删除学生对象。但我希望考勤中连接的外键记录应该保留在那里以用于历史报告。
学生对象将在没有警告的情况下被删除,并且考勤中与外键相关的行将不会被删除。
最佳答案
根据您的描述,您似乎应该使用on_delete=models.SET_NULL
。通过这种方法,外键值不会被删除,而是它们与已删除项目的关系 id 将被设置为 null。
因此 Student 对象将被删除,并且 stu
值将设置为 Null。
关于python - 删除 django 模型类对象而没有外键警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53670367/