У меня есть пользовательская модель пользователя с электронной почтой в качестве имени пользователя.Я зашифровал поле электронной почты, чтобы оно соответствовало требованиям GPDR (я буду хранить много личной информации).Я добавил поле email_hash с индексом для базы данных, чтобы иметь возможность немедленно получить пользователя.Я изменил get_natural_key моего пользовательского диспетчера объектов, чтобы использовать хеш для получения.
Но теперь я столкнулся с проблемой, я должен отключить уникальность в поле электронной почты (поле имени пользователя), но Django не позволил мне сделать этокогда я пытаюсь произвести миграцию.
myuser.MyUser: (auth.E003) 'MyUser.email' must be unique because it is named as the 'USERNAME_FIELD'.
В противном случае я хочу, чтобы ошибка уникальности возникала в поле электронной почты, а не в поле email_hash ....
Как создать функционально зашифрованное поле электронной почтыкак пользователь и хэш для индекса?
редактировать: я отключил проверку уникальности в поле электронной почты и добавил SILENCED_SYSTEM_CHECKS = ["auth.E003"]
в настройках.
Теперь моя проблема заключается в том, чтобы ошибка уникальности email_hash отображалась какошибка электронной почты: «Пользователь с таким адресом электронной почты уже существует».сообщение отображается в правильных формах и в поле сериализатора django rest framework.