Created
August 18, 2017 18:53
-
-
Save lshifr/b5d6fd939fb9e67dbd7cac9b8a5149e0 to your computer and use it in GitHub Desktop.
Sample Django registration form
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RegistrationForm(forms.Form): | |
username = forms.CharField( | |
label='Имя пользователя', | |
max_length=30, | |
widget=forms.TextInput(attrs={'class':'uname-reg'})) | |
email = forms.EmailField( | |
label='Email', | |
widget=forms.EmailInput( attrs={'class' : 'email-reg'}) | |
) | |
password1 = forms.CharField( | |
label='Пароль', | |
widget=forms.PasswordInput(attrs={'class': 'pswd-reg'}) | |
) | |
password2 = forms.CharField( | |
label='Пароль (еще раз)', | |
widget=forms.PasswordInput(attrs={'class': 'pswd-reg'}) | |
) | |
captcha = CaptchaField() | |
def clean_password2(self): | |
if 'password1' in self.cleaned_data: | |
password1 = self.cleaned_data['password1'] | |
password2 = self.cleaned_data['password2'] | |
if password1 == password2: | |
return password2 | |
raise forms.ValidationError('Пароли не соответствуют друг другу') | |
def clean_username(self): | |
username = self.cleaned_data['username'] | |
if not re.search(r'^\w+$', username): | |
raise forms.ValidationError( | |
'Имя пользователя может содеожать лишь буквы, цифры и знак подчеркивания' | |
) | |
try: | |
User.objects.get(username=username) | |
except ObjectDoesNotExist: | |
return username | |
raise forms.ValidationError('Пользователь с таким именем уже существует. Пожалуйста выберите другое имя.') | |
def clean_email(self): | |
email = None | |
try: | |
email = self.cleaned_data['email'] | |
User.objects.get(email=email) | |
raise forms.ValidationError('Этот email уже используется') | |
except User.DoesNotExist: | |
return email |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment