【问题标题】:Deleting a django model class object without foreignkey warning删除没有外键警告的 django 模型类对象
【发布时间】:2019-05-09 06:28:00
【问题描述】:

我在 MySql 中有两个用 django 模型创建的表。一个是学生模型,另一个是考勤模型。

class Attendance(BaseModel):
    stu = models.ForeignKey(Students, verbose_name=_("Student"))

我没有将“on_delete=models.PROTECT”放在出勤类的 stu 中,因为如果这个学生在出勤中被定义为学生类的外键,我需要能够在没有保护警告的情况下删除一个学生对象。

现在,当我删除学生对象时,考勤中的外键连接记录也被删除。

我想做的是,我想在没有警告的情况下删除学生对象。但我希望出勤中连接的外键记录应该留在那里以获取历史报告。

Students 对象将被删除而不发出警告,并且出勤中的外键相关行不会被删除。

【问题讨论】:

    标签: python django django-views django-mysql


    【解决方案1】:

    根据您的描述,您似乎应该使用on_delete=models.SET_NULL。通过这种方法,外键值不会被删除,而是将它们与已删除项的关系 id 设置为 null。

    因此 Student 对象将被删除,stu 值将设置为 Null。

    【讨论】:

    • 已解决。谢谢!
    • 任何时候我的朋友 :)
    猜你喜欢
    • 2017-04-07
    • 2016-06-11
    • 1970-01-01
    • 2018-04-22
    • 2014-08-23
    • 2017-04-28
    • 1970-01-01
    • 2011-05-10
    • 2015-10-29
    相关资源
    最近更新 更多