You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

30 lines
1.1 KiB

# -*- 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