Как проверить, чтобы входные сообщения в Django были одинаковыми? - PullRequest
0 голосов
/ 26 марта 2012

Я хочу сделать регистрационную форму пользователя, в которой у меня будут поля, такие как имя, фамилия, адрес электронной почты, повторный адрес электронной почты и пароль.

Поэтому мой вопрос заключается в том, как проверить входящие электронные письмаи переслать равно.Я не смог найти какую-то помощь при чтении документации для проверки здесь: https://docs.djangoproject.com/en/1.4/ref/validators/

Я нашел этот сайт, когда гуглил, но, похоже, Django сильно изменился с 2006 года. Потому что AlwaysMatchOtherField не существует в1.4

Вот сайт http://www.b -list.org / weblog / 2006 / sep / 02 / django-tips-user-registration /

Ответы [ 2 ]

3 голосов
/ 26 марта 2012

Вы можете переписать ваши формы clean, чтобы сделать проверку полей, которые зависят друг от друга .

class MyForm(models.ModelForm):

    def clean(self):
        cleaned_data = super(MyForm, self).clean()
        if cleaned_data['email'] != cleaned_data['re_email']:
            raise forms.ValidationError("Your emails don't match")
        return cleaned_data

Что касается регистрационной формы, вы должны использовать django-registration

0 голосов
/ 26 февраля 2016

вот что я сделал по примеру https://github.com/django/django/blob/master/django/contrib/auth/forms.py:

def clean_email2(self):
    email = self.cleaned_data.get("email")
    email2 = self.cleaned_data.get("email2")
    if email and email != email2:
        raise forms.ValidationError(
            "Your email address differs",
        )
    return email2

Во избежание ошибок очень важно убедиться, что адреса электронной почты заполнены.

...