Django Cambiar Contraseña

Salman Mehmood 18 agosto 2022
Django Cambiar Contraseña

Aprenderemos cómo crear una página web para que el usuario cambie la contraseña después de iniciar sesión en la página web de Django.

Cree una página web para que el usuario cambie la contraseña en Django

Por ejemplo, tenemos un proyecto en Django y trabajaremos en este proyecto donde tenemos la aplicación de los usuarios. En esta aplicación, encontramos el archivo views.py, y necesitamos importar dos vistas necesarias.

Uno de ellos se llama PasswordChangeView, que nos permitirá cambiar la contraseña, y el PasswordResetDoneView confirmará que se ha restablecido la contraseña.

Ahora necesitamos definir una clase llamada MyPasswordChangeView que heredará de PasswordChangeView; dentro de esta clase, declaramos la variable template_name y almacenamos la URL de la plantilla donde el usuario cambiará la contraseña.

En la variable success_url, necesitamos poner la variable reverse_lazy(). Debajo del código, necesitamos crear otra clase llamada MyPasswordResetDoneView y heredarla de PasswordResetDoneView.

Solo declaramos la variable template_name dentro de esta clase y almacenamos la ruta de la plantilla a esta variable template_name; luego, debemos guardarlo y registrar estas vistas en el archivo urls.py.

Archivo views.py:

from django.shortcuts import render
from django.urls import reverse_lazy
from django.contrib.auth.views import PasswordChangeView, PasswordResetDoneView


class MyPasswordChangeView(PasswordChangeView):
    template_name = "users/password-change.html"
    success_url = reverse_lazy("users:password-change-done-view")


class MyPasswordResetDoneView(PasswordResetDoneView):
    template_name = "users/password-reset-done.html"

Crearemos un archivo urls.py dentro de la aplicación de los usuarios y luego importaremos nuestras vistas al archivo que creamos.

Luego necesitamos crear una variable llamada app_name e igual a usuarios, que es el nombre de nuestra aplicación. Debajo de la línea, crearemos una lista de urlpatterns donde integraremos vistas con URL.

crear una variable y urlpatterns

Crearemos plantillas, pero antes de movernos a cualquier parte, debemos incluir la ruta de los usuarios a urlpatterns del proyecto principal en el archivo urls.py. Vamos a crear una nueva ruta debajo de movies para los usuarios, y el namespace debe coincidir con la aplicación; después de escribir el código, guárdelo.

urlpatterns del archivo urls.py

Ahora podemos volver a la app de los usuarios, y por aquí, vamos a crear una carpeta templates; dentro de la templates, crearemos otra carpeta llamada users. En la carpeta users, necesitamos crear dos archivos HTML que hemos definido dentro del archivo views.py.

Empezaremos a trabajar en el archivo password-change.html, así que en primer lugar, hereda del base.html, y después, ponemos el block title y el block content que consistirá en un formulario. Pongamos en blanco form action, y el método es igual a POST, lo que significa que estamos tratando con una petición POST.

Tenemos que poner csrf_token dentro del formulario, lo que permitirá enviar peticiones. Crearemos un botón y mantendremos este tipo como submit, haciendo que sea un botón verde añadiendo una clase.

título del bloque y contenido del bloque

Trabajaremos en password-reset-done.html, y aquí, nuevamente necesitamos heredar del archivo base.html; después de esto, el enfoque será el mismo, pero la sintaxis será un poco diferente.

Luego, escribiremos un atributo href y proporcionaremos el nombre de la ruta para la vista de inicio, por lo que el usuario se comunicará presionando este botón.

atributo href

Lo último es ir al home.html para crear un botón para acceder a una página donde el usuario cambiará la contraseña.

botón cambiar contraseña

El servidor se está ejecutando, e iremos a cambiar la contraseña a través de la página de inicio, y podemos ver que después de iniciar sesión, el usuario puede cambiar la contraseña.

cambiar salida de contraseña

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Django Password