在没有外键警告的情况下删除Django模型类对象

时间:2018-12-07 13:16:49

标签: python django django-views django-mysql

我在MySql中有两个用Django模型创建的表。一个是Student模型,另一个是Attendance模型。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    double arr[101];
    int i;
    arr[0] = 8;
    for (i = 1; i < 101; i++)
        arr[i] = arr[i - 1] + 0.04;
    for (i = 0; i < 101; i++)
        printf("%f\n",arr[i]);
}

我没有将“ on_delete = models.PROTECT”添加到出勤班的stu中,因为如果该学生在“出勤”中被定义为“学生”班级的外键,那么我需要能够在没有保护警告的情况下删除“学生”对象。

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

我想做的是,我想删除Student对象而没有警告。但是我希望出勤记录中关联的外键记录应该保留在那里以备历史报告。

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

1 个答案:

答案 0 :(得分:3)

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

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