Introduction Logout user Login user
Change Password
This assumes that the user app has already been created (see introduction)
In this process we will use the Django provided PasswordChangeForm form.
- In urls.py
urlpatterns = [ ... path(r'change-password/', views.change_password, name='change_password'), ]
-
in views.py
from django.contrib.auth.forms import PasswordChangeForm def change_password(request): display_form = True if request.method == 'POST': form = PasswordChangeForm(request.user, request.POST) if form.is_valid(): user = form.save() update_session_auth_hash(request, user) messages.success(request, 'Your password was successfully updated!') display_form = False # return redirect('change_password') else: messages.error(request, 'Please correct the error below.') else: form = PasswordChangeForm(request.user) url = 'users/change_password.html' return render(request, url, {'form': form, 'display_form': display_form})
- In change_password.html
{% extends "base.html" %} {% block content %} {% if messages %} <ul class="messages"> {% for message in messages %} <li {% if message.tags %} class=""{% endif %}></li> {% endfor %} </ul> {% endif %} <br> {% if display_form %} {% if user.username %} Your are logged in as: <br> <form method="post"> {% csrf_token %} <button type="submit">Save changes</button> </form> {% else %} You are not logged in! {% endif %} {% endif %} <a href="/">Home</a> {% endblock %}