1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- from .models import CastomUser
- from django.core.exceptions import ValidationError
- from django.core.validators import RegexValidator
- from django import forms
- from .validators import validate_pasword_len
- class RegisterUserForm(forms.ModelForm):
- first_name = forms.CharField(
- label='Имя',
- validators=[RegexValidator('^[а-яА-Я- -]+$',
- message="Разрешены только кириллица, дефис и пробелы")],
- error_messages={'required': 'Обязательное поле', }
- )
- last_name = forms.CharField(
- label='Фамилия',
- validators=[RegexValidator('^[а-яА-Я- -]+$',
- message="Разрешены только кириллица, дефис и пробелы")],
- error_messages={'required': 'Обязательное поле', }
- )
- username = forms.CharField(label='Логин',
- validators=[RegexValidator('^[a-zA-Z0-9-]+$',
- message = "Разрешены только латиница, цифры или тире")],
- error_messages={
- 'required': 'Обязательное поле',
- 'unique': 'Данный логин занят'
- })
- email = forms.EmailField(label='Anpec злектронной почт',
- error_messages={
- 'invalid': 'Hе правильный формат адреса',
- 'unique': 'Данный адрес занят'
- })
- password = forms.CharField(label='Пароль',
- widget=forms.PasswordInput,
- validators=[validate_pasword_len],
- error_messages={
- 'required': 'Обязательное поле',
- })
- password2 = forms.CharField(label='Пapоль (повторно)',
- widget=forms.PasswordInput,
- error_messages={
- 'required': 'Обязательное поле',
- })
- rules = forms.BooleanField(required=True,
- label='Согласие с правилами регистрации',
- error_messages={
- 'required': 'Обязательное поле',
- })
- def clean(self):
- super().clean()
- password = self.cleaned_data.get('password')
- password2 = self.cleaned_data.get('password2')
- if password and password2 and password != password2:
- raise ValidationError({
- 'password2': ValidationError('Введенные пароли не совпадант', соdе='password_mismatch')
- })
- def save(self, commit=True):
- user = super().save(commit=False)
- user.set_password(self.cleaned_data.get('password'))
- if commit:
- user.save()
- return user
- class Meta:
- model = CastomUser
- fields = ('first_name', 'last_name', 'username', 'email', 'password', 'password2', 'rules')
- class SearchForm(forms.Form):
- query = forms.CharField(max_length=255, required=False, label= 'Search')
|