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