Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Problema con decorador Personalizado

Estas en el tema de Problema con decorador Personalizado en el foro de Python en Foros del Web. Hola a todos, Me encuentro probando la API de Goole App Engine, con python y django. estoy tratando de implementar un decorador @login_require como hay ...
  #1 (permalink)  
Antiguo 23/10/2012, 10:30
 
Fecha de Ingreso: junio-2012
Ubicación: Bogota
Mensajes: 21
Antigüedad: 12 años, 6 meses
Puntos: 1
Problema con decorador Personalizado

Hola a todos,

Me encuentro probando la API de Goole App Engine, con python y django. estoy tratando de implementar un decorador @login_require como hay en django pero con la autenticacion de GAE, el problema es que cuando se hace la autenticacion de usuario me apaerece este error:

ValueError: The view util.login_required.wrapper didn't return an HttpResponse object.

he intentado varias cosas pero ninguna logra resolver el error. no se que tengo mal

el codigo del decorador es

Código:
def check_login(fn):
	
	def wrapper(request, *args, **kr):
		user = users.get_current_user()
		if not user:
			return HttpResponseRedirect(users.create_login_url(request.path))
		else:
			fn(request, *args, **kr)
	return wrapper
y la vista a la que la aplico es:

Código:
@check_login
def privado(request):
      return render_to_response('privado.html','user':users},context_instance=RequestContext(request))
Gracias de antemano por su ayuda
  #2 (permalink)  
Antiguo 23/10/2012, 10:43
 
Fecha de Ingreso: junio-2012
Ubicación: Bogota
Mensajes: 21
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: Problema con decorador Personalizado

Resuelto; el problema fue que me falto poner la instruccion return en fn(request, *args, **kr)

Quedando el decorador

Código:
def check_login(fn):
	
	def wrapper(request, *args, **kr):
		user = users.get_current_user()
		if not user:
			return HttpResponseRedirect(users.create_login_url(request.path))
		else:
			return fn(request, *args, **kr)
	return wrapper

Etiquetas: appengine, django, gae, google
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:44.