Как сделать поле электронной почты в form.py обязательным полем? - PullRequest
0 голосов
/ 29 мая 2018

Я пробовал несколько методов, но, кажется, не могу заставить его работать.

Вот мои коды:

 class Meta:
        model = User
        # set fields to be used in registration form
        fields = ['username','email','password','password2']

    username = forms.CharField(required=True)
    email = forms.EmailField(required=True, max_length=100) <---
    password= forms.PasswordInput()
    password2=forms.PasswordInput()


# user email must be unique
def clean_email(self):
    email = self.cleaned_data.get('email')
    # check if account with email exists
    if email and User.objects.filter(email=email).exists():
        raise forms.ValidationError('Email address already exists')
    return email

Кто-нибудь знает, почему требуемый = True не работает, чтобы сделатьэто как обязательное поле?

1 Ответ

0 голосов
/ 29 мая 2018

Что @WillemVanOnsem сказал в своем комментарии к вашему вопросу, я расширю его здесь, чтобы сделать его более понятным: вы должны позвонить super().clean_email(), чтобы убедиться, что все проверки этого поля по умолчанию выполнены.

def clean_email(self):
    email = super().clean_email()

    if email is not None:
        # check if account with email exists
        if User.objects.filter(email=email).exists():
            raise ValidationError('Email address already exists.')

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