null = True和on_delete = models.SET_NULL django之间的区别

时间:2018-06-27 11:17:58

标签: python django

我有一个字段

owner = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)

这两个属性在模型字段上有什么区别?

2 个答案:

答案 0 :(得分:5)

null=True表示所有者字段可以在数据库中为null,这意味着您可以使模型的对象没有所有者。 on_delete=models.SET_NULL 意味着如果现有对象的所有者被删除,请将现有对象的此字段设置为null。

答案 1 :(得分:0)

null=True 表示该字段可以为空或为空,但 on_delete=models.SET_NULL 用于表示该字段的所有者存在,如果所有者是,则应将其设置为 NULL不存在。

class Product(models.Model):
    name = models.CharField(max_length = 50)
    category = models.ForeignKey(Category, on_delete=models.SET_NULL)