为什么我得到IntegrityError:NOT NULL约束失败

时间:2017-05-13 18:39:03

标签: python django django-models

IntegrityError: NOT NULL constraint failed: app_userprofile.email

该字段如下所示:

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

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

2 个答案:

答案 0 :(得分:1)

As noted here,在charField和TextField中使用null = True应该避免。因为那时你的字段有两个选项没有数据。一个是None,另一个是空字符串。

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

答案 1 :(得分:1)

有两种选择:

  1. 设置null = True,如果要在数据库中保存空值,则使用{。}。
  2. 设置blank = True,用于表单验证。您可以在该字段中调用没有值的保存表单。
  3. 在当前版本中,您只需添加null = True

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