# -*- coding: utf-8 -*- from django import forms from django.utils.translation import ugettext as _ from accounts.models import User class EmailForm(forms.Form): email = forms.EmailField(label=_(u'Email address')) class AssociateForm(EmailForm): _errors = { 'required': _(u'Данный email уже зарегистрирован. Авторизируйтесь чтобы привязать аккаунт.'), 'invalid': _(u'Неправильный логин или пароль.') } password = forms.CharField(label=_(u'Пароль'), widget=forms.PasswordInput(), error_messages=_errors) def clean_password(self): self.user = None pw = self.cleaned_data.get('password') if pw: try: self.user = User.objects.get(email=self.cleaned_data.get('email')) except: self.user = None if self.user and not self.user.check_password(pw): self.user = None raise forms.ValidationError(self.fields['password'].error_messages['invalid']) return pw