Menu
CoddyTech

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.

challenge icon

Desafío

Fácil

Añade una página de inicio de sesión.

  1. En mysite/urls.py, incluye django.contrib.auth.urls bajo accounts/.
  2. Crea notes/templates/registration/login.html que extienda notes/base.html y muestre form en un formulario POST con {% csrf_token %} y un botón «Log in».
  3. En settings.py, establece LOGIN_REDIRECT_URL en "/".
  4. 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

Practica por tu cuenta: Playground de Django