You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:33:16