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.

  1. In urls.py
    
       urlpatterns = [
           ...
           path(r'change-password/', views.change_password, name='change_password'),
           ]
    
  2. 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})
    
    
  3. 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 %}
    

Introduction Logout user Login user