from django import forms from django.contrib.auth.forms import AuthenticationForm from django_registration.forms import RegistrationFormUniqueEmail class CustomRegistrationForm(RegistrationFormUniqueEmail): """ Форма для регистрации :class:`django_registration.forms.RegistrationFormUniqueEmail` с добавлением bootstrap-класса 'form-control' """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) for visible in self.visible_fields(): if visible.field.widget.attrs.get('class', False): if visible.field.widget.attrs['class'].find('form-control') < 0: visible.field.widget.attrs['class'] += 'form-control' else: visible.field.widget.attrs['class'] = 'form-control' if visible.html_name !='email': visible.field.required = False class Meta(RegistrationFormUniqueEmail.Meta): fields = RegistrationFormUniqueEmail.Meta.fields class CustomAuthenticationForm(AuthenticationForm): """ Форма для авторизации :class:`django.contrib.auth.forms.AuthenticationForm` с изменением поля username на email """ username = forms.CharField( label="Электронная почта", widget=forms.EmailInput(), ) error_messages = { 'invalid_login': "Пожалуйста, введите правильные электронную почту и пароль. Оба поля " "могут быть чувствительны к регистру." , 'inactive': "Аккаунт не активен.", }