I finally found a solution. I think there is always a slight misunderstanding between MVC and MTV. In MTV (Django), a view denotes a controller, and a template is a view.
Therefore, although it is true that the password for changing the "View" comes from the built-in pre-built template, the actual templates (appearance and style) should still be generated by the user, while the basic form (widget) is automatically created by Django. This becomes clearer when viewing the code.
So add these two lines to url.py
(r'^change-password/$', 'django.contrib.auth.views.password_change'), (r'^password-changed/$', 'django.contrib.auth.views.password_change_done'),
Then in the myproject / templates / registration section add these two files
password_change_done.html
{% extends "base.html" %} {% block title %}Password Change Successful{% endblock %} {% block head %}Password Change Completed Successfully{% endblock %} {% block content %} Your password has been changed successfully. Please re-login with your new credentials <a href="/login/">login</a> or go back to the <a href="/">main page</a>. {% endblock %}
password_change_form.html
{% extends "base.html" %} {% block title %}Change Registration{% endblock %} {% block head %}Change Registration{% endblock %} {% block content %} <form method="post" action="."> {{form.as_p}} <input type="submit" value="Change" /> {% csrf_token %} </form> {% endblock %}

Houman
source share