关于python:使用空白电子邮件添加多个Django用户

Adding multiple Django users with a blank email

我有一个使用PostgreSQL数据库的django应用程序,其中用户迁移有一个带unique=True的电子邮件字段。我的User型号有:

1
email = models.EmailField(_('email address'), unique=True, blank=True)

我希望能够用空白电子邮件创建多个用户,但是当电子邮件不是空白时,它必须是唯一的。当前,当我用空白电子邮件创建两个用户时,我会收到此错误:

duplicate key value violates unique constraint"accounts_user_email_b2644a56_uniq"

编辑:我在User模型中添加了save方法:

1
2
if not self.email:
    self.email = None


唯一约束将允许值为null的多行,但不允许值为空字符串的多行。

因此,您应该在字段上设置null=True,然后设置email=None,而不是email=""