Django的密码操作 | 您所在的位置:网站首页 › django修改密码 › Django的密码操作 |
原文始发于:Django的密码操作 一 关于密码操作的思维导图 二 修改密码内置函数源码 @sensitive_post_parameters() @csrf_protect @login_required @deprecate_current_app def password_change(request, # 修改密码模板默认位置 template_name='registration/password_change_form.html', post_change_redirect=None, password_change_form=PasswordChangeForm, extra_context=None): if post_change_redirect is None: post_change_redirect = reverse('password_change_done') else: # 根据传入参数重新定义重定向ULR post_change_redirect = resolve_url(post_change_redirect) if requesthod == "POST": form = password_change_form(user=request.user, data=request.POST) if form.is_valid(): form.save() # Updating the password logs out all other sessions for the user # except the current one. update_session_auth_hash(request, form.user) return HttpResponseRedirect(post_change_redirect) else: form = password_change_form(user=request.user) context = { 'form': form, 'title': _('Password change'), } if extra_context is not None: context.update(extra_context) return TemplateResponse(request, template_name, context) @login_required @deprecate_current_app def password_change_done(request, # 密码修改完成模板默认位置 template_name='registration/password_change_done.html', extra_context=None): context = { 'title': _('Password change successful'), } if extra_context is not None: context.update(extra_context) return TemplateResponse(request, template_name, context)三 修改URL from django.conf.urls import url from . import views from django.contrib.auth import views as auth_views urlpatterns = [ # 自定义登录 # url(r'^login/$', views.user_login, name='user_login'), # django内置的登录 url(r"^login/$", auth_views.login, name="user_login"), url(r"^new-login/$", auth_views.login, {"template_name": "account/login.html"}), url(r'^logout/$', auth_views.logout, {"template_name": "account/logout.html"}, name='user_logout'), url(r'^register/$', views.register, name="user_register"), # 给password_change方法传入post_change_redirect参数 url(r'^password-change/$', auth_views.password_change, {"post_change_redirect": "/account/password-change-done"}, name='password_change'), url(r'^password-change-done/$', auth_views.password_change_done, name='password_change_done'), ]四 新增模板 1 mysite/templates/registration/password_change_form.html {% extends "base.html" %} {% block title %}修改密码{% endblock %} {% block content %} 修改密码为了安全起见,请输入您的旧密码,然后输入您的新密码两次,以便我们能够验证您输入的密码是否正确。 {% if form.new_password1.help_text %}{{ form.new_password1.help_text|safe }} {% endif %} {% csrf_token %} {{ form.old_password.label_tag }} {{ form.old_password }} {{ form.new_password1.label_tag }} {{ form.new_password1 }} {{ form.new_password2.label_tag }} {{ form.new_password2 }} {% endblock %}2 mysite/templates/registration/password_change_done.html {% extends "base.html" %} {% block title %}密码修改完成{% endblock %} {% block content %}密码修改完成 {% endblock %}五 增加修改密码入口,修改mysite/templates/header.html {% load staticfiles %}![]() 六 测试效果
|
CopyRight 2018-2019 实验室设备网 版权所有 |