Django - None 与 Null 的区别

1 投票
1 回答
3443 浏览
提问于 2025-04-18 17:53

我正在设置一个外键,使用的是 on_delete=models.SET_NULL, null=True。但是我有点困惑,我只想要在外键被删除时,其他的关系在数据库里依然保留。

那么,下面这段代码的结果

on_delete=models.SET_NULL, null=True

on_delete=models.SET_DEFAULT, default=None

对我来说是一样的吗?

1 个回答

3

是的,这样做会得到相同的结果。

不过你应该在这两个例子中都设置 null=True,因为这个设置决定了这个字段在数据库中是否可以为空。

在第一个例子中,你没有设置默认值。这意味着你必须在保存对象到数据库之前先给这个字段赋值。

我建议使用 on_delete=models.SET_NULL, default=None, null=True

撰写回答