Был почти подобный вопрос: Как сделать почтовое поле уникальным в модели User от contrib.auth в Django
Решение не было идеально: Проверка электронной почты для уникальности. Предоставленное решение довольно забавно. Это запрещает модификации Пользователю, которые оставляют неповрежденный адрес электронной почты. Как зафиксировать его?Заранее спасибо!
Спасибо Офри Равиву, но то, что я видел, не то, что мне нужно. Итак, я решил свою проблему и теперь хотел бы поделиться советами:
Используйте имя пользователя вместо электронной почты, исключите электронную почту из формы. Замаскируйте его метку как электронную почту.
Создайте подкласс «Пользователь» и создайте УНИКАЛЬНОЕ поле, которое принимает адреса электронной почты, замаскируйте его как электронную почту, исключите исходное поле электронной почты из формы.
Это так просто, но мне потребовалось время. Надеюсь, это поможет другим с такой же потребностью.
в вашем __ init __. Py
from django.contrib.auth.models import User
User._meta.get_field_by_name('email')[0]._unique = True