我有一个使用PostgreSQL数据库的Django应用,其中用户迁移的电子邮件字段为unique=True
。我的User
模型具有:
email = models.EmailField(_('email address'), unique=True, blank=True)
我希望能够用空白电子邮件创建多个用户,但是当电子邮件不是空白时,它必须是唯一的。当前,当我用空白电子邮件创建两个用户时,出现此错误:
重复的键值违反了唯一约束“ accounts_user_email_b2644a56_uniq”
编辑:我已将其添加到save
模型中的User
方法中:
if not self.email:
self.email = None
答案 0 :(得分:4)
唯一约束将允许值为null
的多行,但不允许值为空字符串的多行。
因此,您应该在字段上设置null=True
,然后设置email=None
而不是email=""
。