Возможно ли обеспечить минимальную длину пароля, если вы используете Django 1.8 или ниже, когда пользователь меняет свой пароль? Когда пользователь создает свою учетную запись на моем веб-сайте, я применяю минимальную длину пароля, используя специальный валидатор в моей форме регистрации. Однако, когда пользователь хочет изменить свой пароль, я вызываю метод auth_views.password_change Django, который определяет используемые формы и критерии проверки.Укажите минимальную длину пароля в версии Django <= 1,8?
# account/urls.py
from django.conf.urls import url
from django.contrib.auth import views as auth_views
urlpatterns = [
...
url(r'^password_change/$',
auth_views.password_change,
{'template_name': 'password_change_form.html'},
name='password_change'),
...
]
Поскольку я не проверки их новый пароль, пользователи смогут изменить его на тот, который не соответствует моим минимальным критериям длины. Есть ли способ сделать эту проверку, кроме исправления обезьян? Этот Stackover question обсуждает подход, который работает, но он предназначен для ситуации, когда вы выполняете аутентификацию, тогда как я разрешаю аутентифицированному пользователю изменять свой существующий пароль. Я знаю, что Django 1.9 предоставит эту возможность с помощью параметра AUTH_PASSWORD_VALIDATORS, но у меня не будет времени на обновление до 1.9 до того, как мой сайт начнет жить.
Вы можете сделать новую форму, которая унаследует от от 'PasswordChangeForm', настроить поле 'new_password1' с' clean_new_password1' (добавить проверку), а также добавить '{'password_change_form': CustomPasswordChangeForm},' в вашем ** url **, чтобы отобразить эту форму, а не по умолчанию. Вы можете использовать представление, если хотите, см. [Здесь] (http://stackoverflow.com/questions/26457279/passwordchangeform-with-custom-user-model), если это может помочь – kapilsdv