Добавление нескольких пользователей Django с пустым адресом электронной почты - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть приложение Django, использующее базу данных PostgreSQL, где пользовательская миграция имеет поле электронной почты с 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

1 Ответ

0 голосов
/ 30 ноября 2018

Уникальное ограничение разрешит несколько строк со значением null, но не разрешит несколько строк со значением пустая строка.

Поэтому вы должны установить null=True в поле, а затем установитьemail=None вместо email="".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...