[pyar] Django - Saber la request "actual"
Luis Masuelli
luismasuelli en hotmail.com
Jue Jul 10 16:40:34 ART 2014
Como hago para saber la request actual bajo la cual estoy ejecutando cierto codigo? El tema que me viene a la mente es algo que me cago hace tiempo al hacer una aplicacion, y ahora vi que un pibe preguntaba lo mismo (http://stackoverflow.com/questions/24661849/using-request-cookies-in-routedatabase-django) y yo comente una solucion que me parece algo asquerosa:
1. Crear un threading.local en mi propio middleware, y cuando proceso una request, asignarle (en mi caso) la request que estoy procesando al threadlocal.
2. Durante la ejecucion del metodo clean() de mi campo personalizado (uno que habia hecho que tenia su propio clean() que dependia de la request actual), recuperaba la request desde el threadlocal que habia creado. 3. Liberaba el threadlocal al terminar la request (en el process_response), para el hilo actual.
Esta solucion, cuando yo la concebi, no tenia en cuenta que no todos los servidores son threaded (una request implique un hilo). Entonces me pregunto: como haria lo mismo para un servidor donde, por ejemplo, una request equivale a un GREENLET? (o lo equivalente en el caso de gunicorn).
Mi pregunta entonces va mas abstracta: como puedo saber globalmente cual es el objeto request que estoy procesando en la peticion actual, pero globalmente? (es decir: alguna funcion utilitaria; asumamos que no puedo acceder al parametro request que fue pasado a la vista actual).
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140710/61efb693/attachment.html>
More information about the pyar
mailing list