Workaround para el bug 7233 de Django
El bug se describe en http://code.djangoproject.com/ticket/7233, pero básicamente consiste en la imposibilidad de guardar objetos de tipo QueryDict en una sesión. Los usuarios de Django suelen toparse con el problema al intentar guardar en la sesión el objeto request.POST, yo lo hago de esta forma:
request.session['POST'] = dict(request.POST.items())
No sirve si se tienen múltiples valores para una clave porque items devuelve para cada clave el último valor almacenado.
En este caso, se puede usar lists:
request.session['POST'] = dict(request.POST.lists())
0 votos


Mayo 15th, 2008 at 3:50 pm
OJo!, A veces hay que combinar estas cosas. Por ejemplo, si en POST viene el valor de un capo que advime múltiples valores, hay que combinar las dos alternativas. Este es un ejemplo sacado de código real:
# Un dict a partir de un QueryDict
d = dict(post_consulta.items())
d['barrios'] = post_consulta.getlist(’barrios’)
request.session['POST'] = d