Django - None 与 Null 的区别
我正在设置一个外键,使用的是 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
。