Убрать поле подтверждения пароля в стандартной форме Django
Доброго времени суток!
Хотел убрать из стандартной формы UserCreationForm в Django поле подтверждения пароля. Если его просто скрыть используя:
class register(UserCreationForm):
password2 = None
или удалить при помощи:
def __init__(self, *args, **kwargs):
super(MyUserCreationForm, self).__init__(*args, **kwargs)
del self.fields['password2']
то проверки пароля на сложность или длину не будут работать. Вычитал, что можно сделать так:
class register(UserCreationForm):
email = forms.EmailField(required=True)
password2 = None
class Meta:
model = User
fields = ['username', 'password1', 'email']
def clean_password1(self):
password1 = self.cleaned_data.get('password1')
try:
password_validation.validate_password(password1, self.instance)
except forms.ValidationError as error:
# Method inherited from BaseForm
self.add_error('password1', error)
return password1
В данном случае проверки для пароля работают, но не в полном объеме. Например если раньше было: Login: admin Pass: admin123, то выдавалась ошибка что пароль слишком похож на логин. После вставки кода, который написал выше, данная ошибка не появляется, хотя остальные ошибки типа "Пароль слишком короткий", корректно отображаются. Как можно пофиксить? Или есть другой способ избавиться от поля подтверждения пароля?