Actualmente estoy desarrollando un sitio de Django en el que los usuarios pueden tener múltiples 'cuentas', de modo que puedan cambiar sin problemas entre diferentes perfiles públicos al interactuar a través del sitio. Lo que estoy diseñando probablemente atraiga múltiples registros por persona (y no se desanimará), solo me gustaría ofrecer esto de tal manera que los usuarios puedan mantener los perfiles unidos, cambiar fácilmente y solo tener que iniciar sesión. en una.inicios de sesión Dyango para múltiples usuarios: ¿el mejor enfoque?
Los dos enfoques que he pensado hasta ahora incluyen:
Uno (
User
modelo + modeloSiteProfile
) par y muchos modelosPublicProfile
por persona.AUTH_PROFILE_MODULE
está configurado para apuntar al modeloSiteProfile
. Problema con esto es que no puedo usar fácilmente los permisos por objeto: se establecerán en el objetoUser
y no en el perfil público, por lo que los permisos para ver una página para "PublicProfileA" también se aplicarán cuando el usuario esté enmascarado. como "PublicProfileB".Un modelo
Account
y muchos (User
modelo +UserProfile
modelo) pares por persona.AUTH_PROFILE_MODULE
se establece para apuntar al modeloUserProfile
. Esto tendría el beneficio adicional de que los permisos funcionaran como estaba previsto, y que simplemente puedo tener un servidor personalizado que cambiará a los usuarios autenticando a un usuario si están actualmente conectados como otro usuario que tiene el mismo objetoAccount
que la clave externa. . Sin embargo, la autenticación ocurriría al leer campos en el objetoAccount
, lo que significaría que el campopassword
en cada objetoUser
se desperdiciará.Como arriba, pero subclases
Account
deUser
. Sin embargo, he sido fuertemente aconsejado en contra de esto (por razones poco claras).
¿Hay algún inconveniente o mejor enfoque para esto? En última instancia, ¿debo usar el modelo User
incorporado como el modelo de uno por persona que identifica un grupo de perfiles públicos (de los cuales estos perfiles tienen un FK de regreso al objeto User
), o usarlo como el perfil en sí, vincular de nuevo a un solo objeto Account
para cada persona?
Pregunta interesante. ¿Puedes proporcionar un poco más de contexto sobre lo que ofrecerán estos diferentes perfiles? p.ej. Si estuviera construyendo un sitio de comercio electrónico, sus usuarios podrían tener cuentas personales y cuentas corporativas. Esto afectaría, por ejemplo, la política de descuentos, la cantidad/volumen de la orden, etc. Esta información ayudaría a hacer una sugerencia más informada. – rantanplan
Guau, ¡disculpas por que sea tan tarde! Esto es para un sitio social, una función es un elemento de juego de roles. Todas las cuentas son 'iguales' en cuanto a que no tendrán 'tipos' separados, no existe tal cosa como una cuenta Corperate o Personal, simplemente 'Miembros'. Además, habrá backends de autenticación personalizados escritos de todos modos, ya que el back-end Django auth incorporado no satisface mis necesidades. ¡Espero que ayude! –