python - 删除 django 模型类对象而没有外键警告

标签 python django django-views django-mysql

我在 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/

相关文章:

python - django 输出空 csv

python - Tastypie apply_filters 具有不同的

python - 在基于类的 View 中使用@transaction.atomic 保存模型

django - 在博客文章中添加下一个/上一个按钮

python - 如何停止由selenium远程驱动程序启动的chrome?

python - 函数返回列表中有多少整数元素是同一列表中其他元素的精确平方

python - NLTK 替换停用词

python - 如何解决django中属性错误的问题?

python - Django反向外键导致重复查询

python - 在 Canvas 上创建可滚动的表格