【发布时间】:2015-07-30 16:17:22
【问题描述】:
我是 Django 新手,请帮助我如何实现密码重置,以便新密码必须与用户在 django 中提交的最后四个密码中的任何一个不同:
我正在使用默认 django 密码重置: urls.py:
url(r'^password/reset/$',auth_views.password_reset,
name='auth_password_reset'),
django/contrib/auth/views.py:
@csrf_protect
def password_reset(request, is_admin_site=False,
template_name='registration/password_reset_form.html',
email_template_name='registration/password_reset_email.html',
subject_template_name='registration/password_reset_subject.txt',
password_reset_form=PasswordResetForm,
token_generator=default_token_generator,
post_reset_redirect=None,
from_email=None,
current_app=None,
extra_context=None):
if post_reset_redirect is None:
post_reset_redirect = reverse('django.contrib.auth.views.password_reset_done')
if request.method == "POST":
form = password_reset_form(request.POST)
if form.is_valid():
opts = {
'use_https': request.is_secure(),
'token_generator': token_generator,
'from_email': from_email,
'email_template_name': email_template_name,
'subject_template_name': subject_template_name,
'request': request,
}
if is_admin_site:
opts = dict(opts, domain_override=request.get_host())
form.save(**opts)
return HttpResponseRedirect(post_reset_redirect)
else:
form = password_reset_form()
context = {
'form': form,
}
if extra_context is not None:
context.update(extra_context)
return TemplateResponse(request, template_name, context,
current_app=current_app)
我应该创建数据库表来存储用户以前的所有密码还是有任何 django 库可以为我提供此功能。
【问题讨论】: