为什么我收到完整性错误:非空约束失败


IntegrityError: NOT NULL constraint failed: app_userprofile.email

该字段如下所示:

email = models.CharField(max_length=100, blank=True, default=None)

我不明白。创建模型实例且未设置电子邮件字段时发生错误。但它是空白的,它是查菲尔德,如果没有被覆盖,它为什么会发生?

有两个选项:

  1. 设置null = True如果要在数据库中保存空值,则使用此选项。
  2. 设置用于表单验证的blank = True。您可以在该字段中调用不带值的保存表单。

在您当前的问题中,您只需要添加 null = True .

email = models.CharField(max_length=100, blank=True, null=True, default=None)

如此处所述,应避免在 charField 和 TextField 中使用 null=True。因为这样您的字段有两个没有数据的选项。一个是无另一个是空字符串。

顺便说一下,null 在 django 字段中默认设置为 False,在这种情况下你应该将其设置为 True。

最新更新