Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/02/2012, 14:53
Avatar de bloodbahamut
bloodbahamut
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta Problema con login y sesiones en Django

Buenas tardes. Intentando hacer un login en django me sucede que puedo logearme con un usuario sin problemas pero si lo hago con otro distinto en una pestana aparte, me sobreescribe los datos en sesion del primero usuario logeado.

Este es mi login

Código Python:
Ver original
  1. def loginProcess(request):
  2.     usuarioLogin = User()
  3.     usuarioTipo = User()
  4.     usuarioLogin.username = str(request.POST['username'])
  5.     usuarioLogin.password = str(request.POST['password'])
  6.     mensaje = Mensaje()
  7.     mensaje.codigo = 0
  8.     mensaje.mensaje = ""
  9.     try:
  10.         if usuarioLogin.username == "" or usuarioLogin.password == "":
  11.             mensaje.codigo = 0
  12.             mensaje = Mensajes.objects.get(codigo=0)
  13.             paramsTemplate = {'datosUsuario': usuarioLogin,'mensajeLogin':mensaje}
  14.             paramsTemplate.update(csrf(request))
  15.             return render_to_response('login.html', paramsTemplate)
  16.         else:
  17.             usuarioTipo = auth.authenticate(username=usuarioLogin.username, password=usuarioLogin.password)
  18.             if usuarioTipo is not None and usuarioTipo.is_active:
  19.                 paramsTemplate = {'datosUsuario': usuarioLogin,'mensajeLogin':mensaje}
  20.                 paramsTemplate.update(csrf(request))
  21.                 if usuarioTipo.is_staff:
  22.                     profesor = Profesor.objects.get(username_id=usuarioTipo.id)
  23.                     auth.login(request, usuarioTipo)
  24.                     usuarioTipo = auth.get_user(request)
  25.                     request.session[usuarioTipo.username] = profesor
  26.                     return render_to_response('inicioProf.html', paramsTemplate)
  27.                 else:
  28.                     estudiante = Estudiante.objects.get(username_id=usuarioTipo.id)
  29.                     auth.login(request, usuarioTipo)
  30.                     usuarioTipo = auth.get_user(request)
  31.                     request.session[usuarioTipo.username] = estudiante
  32.                     return render_to_response('inicioEstud.html', paramsTemplate)
  33.     except ObjectDoesNotExist:
  34.         mensaje = Mensaje.objects.get(codigo=1)
  35.         paramsTemplate = {'datosUsuario': usuarioLogin,'mensajeLogin':mensaje}
  36.         paramsTemplate.update(csrf(request))
  37.         return render_to_response('login.html', paramsTemplate)

y para obtener los datos y verlos uso los siguentes metodos

Código Python:
Ver original
  1. def consultarDatosEstudiante(request):
  2.     user = auth.get_user(request)
  3.     estudiante = request.session[user.username]
  4.     paramsTemplate = {'datosUsuario': user,'datosEstudiante':estudiante}
  5.     paramsTemplate.update(csrf(request))
  6.     return render_to_response('consultarDatosEst.html', paramsTemplate)
  7.  
  8. def consultarDatosProfesor(request):
  9.     user = auth.get_user(request)
  10.     profesor = request.session[user.username]
  11.     paramsTemplate = {'datosUsuario': user,'datosProfesor':profesor}
  12.     paramsTemplate.update(csrf(request))
  13.     return render_to_response('consultarDatosProf.html', paramsTemplate)

De ante mano gracias por la ayuda que puedan prestarme!!

Última edición por razpeitia; 13/02/2012 a las 15:44 Razón: Resaltado de sintaxis.