Autenticación Django

245 views
Skip to first unread message

WolveLopez

unread,
Jan 30, 2013, 11:21:25 AM1/30/13
to djan...@googlegroups.com
Saludos compañeros,
Estoy desarrollando un pequeña aplicación en la cual habrá 2 tipos de usuarios que se darán de alta en la base de datos y dependiendo que tipo sea, podra acceder a unas vistas u otras.
El caso es que me surge la duda de si para esto, la mejor opción sería crear 2 tablas en la base de datos con usuario de cada tipo(y autenticar con ellos, aunque no se si se puede hacer esto) o modificar el User de django que trae por defecto.

¿que os parece?¿alguien que me pueda decir cual es la mejor opción?

Si habéis visto algo en algún enlace de como hacer esto, ruego me lo comuniquéis.

Un saludo.

Milton Labanda

unread,
Jan 30, 2013, 11:25:15 AM1/30/13
to djan...@googlegroups.com
Yo tuve algo parecido y lo que hice es extender el User de Django, pudiendo crear entonces varios tipos de mis usuarios. Aunque a la final en la BD serán una tabla por cada tipo logicamente.

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a django-es+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
/\/\;/-----------------------------------------------------
Milton  Labanda  [miltonlab]
Distro:        Debian GNU/Linux 6.0 Squeeze
Blog:          http://1000tonlab.wordpress.com
jabber:        milt...@jabber.org
"... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su  verdadero bien...".  Karol Wojtyla
(:\ Usa Software Legal, usa Software Libre /:)

WolveLopez

unread,
Jan 30, 2013, 11:35:19 AM1/30/13
to djan...@googlegroups.com
Pero entonces, para saber que tipo de usuario es al validarse, ¿como lo pensaste?

Milton Labanda

unread,
Jan 30, 2013, 11:58:23 AM1/30/13
to djan...@googlegroups.com
digamos que lo hice a mano en el controlador (vistas). En mis caso mis usuarios son estudiantes y docentes, pero un estudiante algun rato puede llegar a ser docente tambien , entonces a la final tengo un usuario que puede tener difentes roles.

WolveLopez

unread,
Jan 30, 2013, 12:11:03 PM1/30/13
to djan...@googlegroups.com

Ok, pero a la hora de acceder a una vista u otra, imagino que en la base de datos de User tendrás un campo booleano por ejemplo para saber si es docente o alumno y manejarlo mediante la vista,  ¿no?

Andres Parra - @jandresplp

Milton Labanda

unread,
Jan 30, 2013, 12:21:57 PM1/30/13
to djan...@googlegroups.com
No tengo ese campo, un Usuario mio tiene un Docente(s) y/o un Estudiante(s) visto en el tiempo.

WolveLopez

unread,
Jan 30, 2013, 12:23:24 PM1/30/13
to djan...@googlegroups.com

Tengo un lio entonces.  No se como lo puedes gestionar pues. ¿Alguna pista mas?

Andres Parra - @jandresplp

chipocrudos

unread,
Jan 31, 2013, 12:27:18 PM1/31/13
to djan...@googlegroups.com
En mi caso lo que hice fue generar grupos dentro del mimo django, a tus usuarios los agregas a el o los grupos que requieras acceder.

En la vista reviso si el usuario pertenece al grupo de la url que quieres acceder.

Esto lo puedes hacer en la misma estructura de la url.


Saludos

WolveLopez

unread,
Jan 31, 2013, 1:21:15 PM1/31/13
to djan...@googlegroups.com
interesante tambien, aunque al final estoy optando por crear 2 modelos y asciarlos a User y posteriormente en el settings añadirlos:
AUTH_PROFILE_MODULE = 'app.docentes'
AUTH_PROFILE_MODULE = 'app.alumnos'

¿como lo veis?


manuelmax

unread,
Feb 1, 2013, 9:11:18 AM2/1/13
to djan...@googlegroups.com
Las soluciones funcionan, pero lo ideal es utilizar grupos y permisos, para poder utilizar decorators y generar menus interactivos a partir de esos permisos. Saludos

WolveLopez

unread,
Feb 1, 2013, 12:11:42 PM2/1/13
to djan...@googlegroups.com

Pero, entonces.... si tengo docentes y alumnos, que heredan de la tabla User para poder validarse contra django, ¿como lo hago?... ¿asigno 2 grupos cada uno con permisos diferentes?

Andres Parra - @jandresplp

--

Milton Labanda

unread,
Feb 1, 2013, 12:19:35 PM2/1/13
to djan...@googlegroups.com
En el caso de usar grupos ya no se necesita herencia, es lo que entiendo.

Alejandro Romero

unread,
Feb 1, 2013, 12:31:18 PM2/1/13
to djan...@googlegroups.com
Aquí surgen varias preguntas: 
  • Vas a trabajar con el admin o vas crear para toda la app tus propias vistas, recuerda que los permisos y los grupos con los viene Django aplican es para el django-admin. Tendrías que adaptar tus vistas a los métodos que se utilizan para filtrar permisos en el django-admin.

  • Creería que tienes que extender el modelo de Django User, para agregar información como teléfonos, fecha de nacimiento, teléfono móvil, etc...  

  • Analiza bien el uso y necesidad de crear más de una base de datos, pues recuerda que Django crea indices por tabla. 

WolveLopez

unread,
Feb 1, 2013, 1:38:41 PM2/1/13
to djan...@googlegroups.com
La web es para la gestion de un centro de enseñanza.
Hay docentes y alumnos y cada uno de ellos podra acceder solo a determinadas vistas.
Necesito a la par extender el modelo de User con cada una de estas tablas (alumnos y docentes), porque cada uno tiene unos campos diferentes.
Ya lo que no entiendo bien,pues estoy tratando de buscar la mejor manera de implementar esto, es si lo hago de esta manera, osea extendiendo el modelo de User para alumnos y docentes, o tal vez haya una mejor manera.
Los alumnos y docentes no accederan al admin, sus accesos deben ser desde el fontend y dependiendo de sus permisos, acceder a unas u otras vistas.

Gracias y perdon por las molestias, pero no termino de saber cual seria la forma mas optima de hacerlo.

Alejandro Romero

unread,
Feb 1, 2013, 3:05:44 PM2/1/13
to djan...@googlegroups.com
Perfecto bueno te voy a dar dos herramientas que te darán idea para lo que necesitas:
Estos dos links son de gran ayuda para lo que estas construyendo

WolveLopez

unread,
Feb 1, 2013, 3:07:10 PM2/1/13
to djan...@googlegroups.com

Muchas gracias, voy a estudiarlos pues.

Andres Parra - @jandresplp

Alejandro Romero

unread,
Feb 1, 2013, 3:10:57 PM2/1/13
to djan...@googlegroups.com
Disculpa se me fue el que no era pero de todos modos te sirve el que envíe:



Alejandro Romero
Desarrollador Web
móvil: 300 509 4218
Twitter: @alejo8591

WolveLopez

unread,
Feb 1, 2013, 6:32:16 PM2/1/13
to djan...@googlegroups.com

No pasa nada, muchas gracias y están geniales los enlaces. Ya por fin me enteré.
Doy el tema por resuelto. Gracias a todos.

Reply all
Reply to author
Forward
0 new messages