删除Django中AUTH_USER_MODEL行时,关联子表数据会自动删除吗?
问题解答
首先明确两种关键场景:
1. Django 2.0 及以上版本
你的代码根本无法运行,因为从Django 2.0开始,ForeignKey必须显式指定on_delete参数,不写会直接抛出语法错误,不存在“删除用户时关联文章会怎样”的执行场景。
2. Django 1.x 旧版本(已停止官方维护)
在该版本中,ForeignKey的on_delete默认值为CASCADE——也就是说,当你删除某条User数据时,所有关联该用户的Article数据会被直接删除,不会将文章的author字段设为null。
额外补充:
如果你想要实现「删除用户后,关联文章的作者字段置空而非删除文章」的效果,需要显式指定on_delete=models.SET_NULL,代码示例如下:
author = models.ForeignKey( settings.AUTH_USER_MODEL, related_name="child", default=None, null=True, on_delete=models.SET_NULL # 显式指定置空逻辑 )
内容的提问来源于stack exchange,提问作者Kaycee
相关产品推荐
相关产品推荐

