Gestión de Usuarios con Django parte 1: Preparación

Enviado por christian el

Prepara tu proyecto Django para gestionar usuarios de forma personalizada

 

Este es otro mimi-curso/conjunto de post/llámale como quieras sobre un tema. En este caso hablaremos de Django y como preparar tu proyecto para gestionar usuarios

Lo que te voy a contar no es obligatorio hacerlo desde el inicio de tu proyecto pero sí que es muy recomendable porque te evitarás problemas en la gestión de las actualizaciones y la exportación de los cambios (migrate - makemigrations)

 

¿Qué cambios hay que realizar?

En resumen lo que tienes que hacer es indicarle a Django que vas a gestionar usuarios por lo que tienes que configurar el método de autenticación y las entidades que vas a utilizar. 

Probablemente si estás en el comienzo de tu proyecto, no tendrás claro todos los atributos de tus usuarios. Esto no es ningún problema ya que, si dejas la estructura/configuración realizada, podrás añadir atributos en el futuro sin problema!

 

¿Cómo lo hacemos?

Vaamos al grano entonces. Hoy te explicaré como preparar tu proyecto para que, cuando te toque, puedas gestionar los usuarios de forma personalizada

 

Configuraciones de aplicación

Tenemos que indicarle a Django que vamos usar un método de autenticación personalizado. Esto lo realizamos directamente en el fichero settings.py.

# Esto ya lo deberías tener puesto, pero te lo recuerdo.
# Deberás "registrar" tu aplicación Django en el proyecto
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "TU_APLICACION",
]

# Lo que tenemos que añadir es lo siguiente
# El nombre del modelo deberás mantenerlo en todos los pasos!
AUTH_USER_MODEL = "TU_APLICACION.CustomUserModel"

Como veis en el ejemplo, en mi caso he definido como autenticación el model custom "CustomUserModel". Tendré que mantener este nombre todo el proceso ya que si no, tendremos errores de definición

 

Activar y configurar zona de administración

Tendremos que habilitar la zona de administración de Django.

No soy muy fan de este paso ya que tienes que "exponer" a todo el mundo urls potenciales de ataque (como por ejemplo el wp-login de wordpress...). No hay problema!, lo podemos solucionar con una configuración rápida en Nginx para bloquear el acceso.

Para activar esta zona, la definimos en el fichero "urls.py" del proyecto (no de la aplicación):

from django.contrib import admin
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static


urlpatterns = [
    # Habilitamos en /admin, la zona de administración
    path("admin/", admin.site.urls),
    
    #Aquí tendrás las urls de tus aplicaciones diferentes
    
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

 

Ahora que tenemos la administración activada, debemos indicarle a Django qué modelos queremos que integre para su gestión. En nuestro caso añadiremos el "CustomUserModel". Lo haremos en el fichero admin.py de tu aplicación:

from django.contrib import admin

# Register your models here.
from interestCompound.models import CustomUser

# Register new user models
admin.site.register(CustomUser)

 

Y hasta aquí el primer paso de este mini-curso. Con lo que hemos visto hoy tenemos preparado nuestro proyecto Django para adminitir un método de autenticación nuevo y una gestión de usuario personalizada

Dinahosting: dominios y alojamiento web
My investor

Regístrate en MyInvestory tendrás un extra de 20€ ! :D

Usa el código U048395 y te llevas un regalo en tu primera inversión :)

Usa el código 22c80f y te llevas un regalo en tu primera inversión :)