Djangoでユーザーモデルをオーバーライドするときに、何か間違っているか、またはEmailFieldを検証する際に問題があるとは確信していません。 は基本的に私が望んでいたことは、ユーザー名を削除し、電子メールアドレスのユーザー名(または一意の識別子)を作ることだった、だから私はDjangoカスタムユーザーモデルEmailFieldが検証されない
class CustomUser(AbstractBaseUser, PermissionsMixin):
first_name = models.CharField(_('first name'), max_length=30, blank=True, null=True)
last_name = models.CharField(_('last name'), max_length=30, blank=True, null=True)
email = models.EmailField(_('email address'), null=False, blank=False, unique=True)
is_staff = models.BooleanField(
_('staff status'),
default=False,
help_text=_('Designates whether the user can log into this admin site.'))
is_active = models.BooleanField(
_('active'),
default=True,
help_text=_('Designates whether this user should be treated as '
'active. Unselect this instead of deleting accounts.'))
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
REQUIRED_FIELDS =()
USERNAME_FIELD = 'email'
objects = CustomUserManager()
# Plus all the remaining stuff/methods we need override
、として私のユーザモデルを上書きしなかった今の問題は、私も無効な電子メールアドレスを持つユーザーを作成することができています、フィールドレベルで検証が行われていないようです。
from django.contrib.auth import get_user_model
User = get_user_model()
User(email='iamnotemail', password='pass').save()
User.objects.get(email='ghjkl')
<CustomUser: ghjkl>
私もfield_clean
を追加して、カスタム電子メールフィールドにバリが、運を追加しようとしました。
あなたにアイデアがある場合は助けてください/何かこれに間違っています。
注
ありがとう:私はモデルフィールドを検証するにはDjango 1.9