Cómo crear grupos y asignar usuarios automáticamente en Django 4.1

Поділитися
Вставка
  • Опубліковано 4 гру 2024
  • En este tutorial aprenderás cómo crear y asignar automáticamente usuarios a grupos en Django 4.1 utilizando signals. La creación de grupos es una herramienta esencial en cualquier aplicación de Django, y con este video podrás hacerlo de manera sencilla y eficiente.
    En este video, te mostraré cómo utilizar el modelo de grupos de Django y la señal post_save para asignar automáticamente un usuario a un grupo específico después de su registro. Además, te explicaré cómo realizar pruebas en tu aplicación para asegurarte de que todo está funcionando correctamente.
    Aprenderás todo lo que necesitas saber para optimizar la gestión de usuarios en tu aplicación y mejorar su seguridad con esta guía completa para crear grupos en Django 4.1 utilizando signals.
    No te pierdas este tutorial si quieres mejorar la eficiencia y seguridad de tu aplicación Django. ¡Comencemos ahora!
    #Django #Desarrolloweb #Python #Programación #Signals #Grupos #Seguridad #Usuarios #Gestióndeusuarios #Automatización #Modelos #AplicacionesDjango #FrameworkDjango #Desarrollodeaplicacionesweb #Desarrollodesoftware #Optimización #Post_save #Asignacióndeusuarios #CreacióndeGrupos #Testing
    03:48 Empezamos: creamos el proyecto y aplicaciones (core y accounts)
    06:49 Configuramos el settings.py
    08:13 Creamos el modelo Profile
    16:06 Editamos el archivo admin.py
    16:38 Creamos el archivo signals.py
    22:32 Editamos el archivo apps.py
    23:15 Editamos nuevamente el archivo settings.py
    24:56 Generamos las migraciones y creamos el superusuario
    28:03 Volvemos a editar el archivo admin.py
    -----------------------------------------------------
    RECURSOS:
    CODIGO FUENTE: github.com/mar...
    -----------------------------------------
    🔗 Conéctate conmigo:
    🐦 Twitter: / cpprincipiantes
    📢 Únete a mi canal en Telegram: t.me/codigopar...
    📚 Únete a mi comunidad en Discord: / discord
    Quería compartirles algo genial…
    Hostinger está ofreciendo un 20% de descuento en sus planes de hosting, y pueden aprovecharlo usando mi enlace de referidos. 🎉 Si alguno está pensando en crear un sitio web o cambiar de hosting, esta es una buena oportunidad!!!
    Enlace con descuento 👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼
    🌐 hostinger.com....
    ☕ ¡Apóyame invitándome a un cafecito para seguir creando contenido!
    👉 Cafecito: cafecito.app/c...
    💰 Si prefieres PayPal, puedes hacer una donación aquí:
    👉 PayPal paypal.me/marc...

КОМЕНТАРІ • 37

  • @CodigoParaPrincipiantes
    @CodigoParaPrincipiantes  4 місяці тому

    Quería compartirles algo genial…
    Hostinger está ofreciendo un 20% de descuento en sus planes de hosting, y pueden aprovecharlo usando mi enlace de referidos. 🎉 Si alguno está pensando en crear un sitio web o cambiar de hosting, esta es una buena oportunidad!!!
    Enlace con descuento 👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼👇🏼
    🌐 hostinger.com.ar/?REFERRALCODE=1SYNERGY56

  • @XxSellwingxX
    @XxSellwingxX Рік тому +1

    ¡ muchas gracias profesor !

  • @rubenbenjamin3634
    @rubenbenjamin3634 Рік тому +1

    Muchas gracias, me sirvió de mucho....

  • @anc1985
    @anc1985 Рік тому +2

    Excelente como siempre! totalmente agradecido de haberme cruzado con tu canal! excelente contenido, muy bien explicado y ejemplificado en casos que se pueden adaptar a cualquier proyecto! Gracias!!! 🙂

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому +1

      Gracias a ti por el comentario!!!

    • @misterioreyes4203
      @misterioreyes4203 8 місяців тому +1

      @@CodigoParaPrincipiantes buen video. soy nuevo trabajando con django y tengo una pregunta algo tonta, si yo estoy ocupando django rest framework y consumo la api con en vue js, puedo aplica la misma logica o ahi mucha diferencia?

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  8 місяців тому

      Tenemos una lista de reproducción de Django restframework + vuejs
      ua-cam.com/play/PLxooeC3-xaNfS7jgZvVUM-kUcrUbgHTWJ.html

  • @esequieljuncos9401
    @esequieljuncos9401 Рік тому +1

    muy buena explicación como de costumbre!

  • @dylanstevensuarezcruz5848
    @dylanstevensuarezcruz5848 Рік тому +2

    si hiciste lo de los roles, muchas gracias 😀😃😄😁

  • @pablo20237
    @pablo20237 Рік тому +1

    Thank you again sir

  • @albertoborella2497
    @albertoborella2497 Рік тому +1

    Excelente!!!!!!!!!

  • @pablo20237
    @pablo20237 Рік тому +1

    Thank you sir

  • @JuanitoOrtega
    @JuanitoOrtega Рік тому +2

    Este video me encantó, me aclaró muchas dudas, enriqueció mis conocimientos sobre Django. Pero sabes, no sé si podrías hacer un video de como trabajar con los grupos, permisos, roles, pero para algo más avanzado. Ejemplo. Mi proyecto es una especie de multi tienda, tengo un modelo llamado Laboratorio y la idea sería crear grupos los cuales solo den acceso a un objeto del modelo Laboratorio, y gestionar diferentes grupos que solo tengan acceso a este laboratorio, pero con diferentes permisos según el rol del grupo. Tal vez al registrar un usuario por defecto se le agregue un laboratorio o un grupo el cual solo tenga acceso a ese laboratorio. Espero se entienda un poco. Gracias por tus videos.

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому +1

      La serie de videos de la academia maneja el tema de grupos y permisos. La asignación de permisos se dan al final de todo, cuando los grupos y la mecánica de la aplicación está afinada. También los permisos se pueden definir desde un principio por código, pero tiene que estar muy bien estructurada la aplicación desde el principio

    • @JuanitoOrtega
      @JuanitoOrtega Рік тому +1

      @@CodigoParaPrincipiantes el proyecto de los videos, es para múltiples academias? Pasa que mi proyecto es para múltiples entidades. Imanigate un proyecto para gestionar un laboratorio clínico, donde se gestionan roles de usuarios, pruebas, parámetros a medir, ordenes de laboratorio 🔬, resultados, sucursales, etc. Pero en mi caso debe permitir múltiples entidades (laboratorios). Una especie de SAAS.

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому +1

      Sin sentarme a pensar detenidamente en el proyecto en si, va a ser como la academia. Vas a tener roles en la aplicación. Pero vas a tener un modelo más que almacenará los grupos de trabajo (grupos de usuarios que hacen una tarea) pero después quedará por ver si esos grupos a su vez tienen roles, y por ende permisos. Y ver su un usuario puede estar en más de un grupo (y con diferentes roles ahí se complicaría un poco) pero si te pones a pensar casi todos los proyectos rondan siempre sobre la misma idea....

  • @gicandia
    @gicandia Рік тому +2

    Me resultaron muy útiles todos tus videos. ¿Será posible que hagas uno donde se pongan en práctica los permisos de cada grupo? Sería de mucha ayuda. Muchas gracias por tu dedicación.

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому +3

      Se podría dar una vuelta de tuerca al vídeo donde explico cómo asignar usuarios a un grupo automáticamente... Déjame pensar que puedo inventar...

    • @gicandia
      @gicandia Рік тому +1

      Estaría genial!! Tal vez una continuación del video con la aplicación práctica donde los administrativos puedan editar las materias, mientras que los docentes sólo pueden ingresar para ver el listado de estudiantes (o algo así). De nuevo, muchas gracias por tus videos. Un saludo!

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому +2

      Buena idea !!! Lo voy a tener en cuenta !!!

  • @gustavomocampo
    @gustavomocampo Рік тому +1

    Hola. Una pregunta. En el minuto 27:30, porque cuando volves a crear el admin, te lo asigna automaticamente al grupo administrativo? Es como que asigno al admin al ultimo grupo creado

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому +1

      Revisé el video y confirmé que el administrador aparece en el grupo de administrativos. Decidí probar una solución: eliminé la base de datos y las migraciones existentes, luego creé nuevamente al superusuario. Al ingresar a la sección de administración, noté que el administrador pertenece al grupo de estudiantes.
      Parece que en algún momento cambié de grupo al administrador y no lo mencioné en el video. Sin embargo, dado que nuestro código agrega automáticamente a todos los usuarios al grupo de estudiantes, este cambio que queda reflejado en el video no debería haber ocurrido. Lamento cualquier confusión que esto pueda haber causado.

    • @gustavomocampo
      @gustavomocampo Рік тому +1

      @@CodigoParaPrincipiantes lo probe de nuevo, inclusive ya en la carpeta ACADEMIA y funciona bien. Muchas Gracias

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  11 місяців тому +1

      Cualquier problema que tengas, ya sabes. Aqui estamos...

  • @JonathanRamirez-ch2cg
    @JonathanRamirez-ch2cg Рік тому +1

    Hola, gracias por tus aportes. Estoy teniendo un error al momento de declarar la clase ProfileAdmin en el minuto 30:45 referente a la variable 'user_group'. Dice lo siguiente: : (admin.E108) The value of 'list_display[4]' refers to 'user_group', which is not a callable, an attribute of 'ProfileAdmin', or an attribute or method on 'accounts.Profile'. Agradeceré una respuesta. Muchas gracias...

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому

      AHI TE DICE QUE EL ERROR LO TIENES EN EL ARCHIVO admin.py en el ProfileAdmin:
      from django.contrib import admin
      from .models import Profile
      class ProfileAdmin(admin.ModelAdmin):
      list_display = ('user', 'first_name', 'last_name', 'email', 'group')
      admin.site.register(Profile, ProfileAdmin)

  • @davidbala9864
    @davidbala9864 Рік тому +1

    una pregunta. Cual es la diferencia en create_user_profile y save_user_profile? que es lo que hace realmente save_user_profile, porque agregarlo si en create_user_profile ya esta guardando el dato en el modelo profile.

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому

      Específicamente create_user_profile se centra en la creación inicial del perfil de usuario, mientras que save_user_profile se enfoca en el guardado o actualización del perfil después de su creación.

  • @fokiucode
    @fokiucode Рік тому +1

    Hola muy buenos dias. Saludos desde Colombia, una pregunta en relacion al cargue de usuarios hay alguna posibilidad o forma de hacer cargue masivo de usuarios a la base de datos. Por ejemplo yo creeo con tu ayuda una aplicacion de cursos y quiero moverlos de mi wordpress a este nuevo entorno, pero son muchos usuarios, como haria para hacer el cargue masivo de esta base de datos. Muchas gracias por tu tiempo y bendiciones.

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому

      Hola!!! Te cuento que eso depende mucho de como está estructurada la base de datos de origen (relaciones que ya tiene) y como está estructurada tus modelos actuales. No es muy difícil ya que lo que primero que tienes que hacer es generar un archivo json con todos los datos que vas a utilizar. Los que no vas a utilizar, directamente los ignoras o no los incluyes en ese json. Y después debes recorrer ese json ir leyendo cada registro y grabar en la base de datos.
      Lo haces en python. Creas un archivo Python y ejecutas ese archivo Python. Si es una base de datos de usuarios tendrás una dificultad extra: generarles una password (aleatoria) temporal y comunicarles que tienen esa password y que deben cambiarla... Lindo desafío...
      Yo tenía en carpeta un ejercicio para migrar determinados datos de una base de datos externa a una base de datos de un proyecto de django... No de usuarios, es un poquitín más complejo, pero es el mismo ejercicio...

  • @88goeth
    @88goeth Рік тому +3

    Excelentísimo, muy buenos estos vídeos de los temas principales de Django , no has abordado el tema de la librería Django allauth? Un saludo

    • @CodigoParaPrincipiantes
      @CodigoParaPrincipiantes  Рік тому +2

      Muchas gracias por el comentario. Si, esa librería dentro de muy poquito la vamos a estar viendo. La idea es ir viendo librerías puntuales para resolver temas específicos. Otra que quiero abordar son las notificaciones vía SMS 😜😜😜😜

  • @marceloburatti9601
    @marceloburatti9601 Рік тому +1

    Excelente!