Iniciar sesión
Parte de la sección Usuarios y cuentas del Journey de Django de Coddy. Lección 2 de 16.
El sitio puede saber quién ha iniciado sesión, pero no tiene ninguna página para iniciar sesión. Django tiene la vista LoginView. Una línea en el archivo urls.py del proyecto la añade, junto con las páginas para cerrar sesión y cambiar la contraseña:
path("accounts/", include("django.contrib.auth.urls")),Ahora existe /accounts/login/, con el nombre login. La vista muestra registration/login.html con un form que tiene un campo username y otro password. Tú escribes esa plantilla: un formulario POST normal. Django busca en la carpeta templates/ de cada aplicación. La ruta empieza con registration/, no con notes/, porque la vista de Django no conoce tu aplicación.
Después de iniciar sesión correctamente, la vista redirige a LOGIN_REDIRECT_URL. Su valor predeterminado, /accounts/profile/, no existe aquí, así que configúralo en settings.py.
Desafío
FácilAñade una página de inicio de sesión.
- En
mysite/urls.py, incluyedjango.contrib.auth.urlsbajoaccounts/. - Crea
notes/templates/registration/login.htmlque extiendanotes/base.htmly muestreformen un formulario POST con{% csrf_token %}y un botón «Log in». - En
settings.py, estableceLOGIN_REDIRECT_URLen"/". - En
base.html, para los visitantes que hayan cerrado sesión, enlaza «Log in» con{% url 'login' %}.
Inicia sesión como ada (contraseña coddy-pass-123): el encabezado indica Signed in as ada.
Pruébalo tú mismo
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("notes.urls")),
]
Todas las lecciones de Usuarios y cuentas
1Quién está visitando
Quién está visitandoIniciar sesiónPractica por tu cuenta: Playground de Django