2011-01-04 15 views
10

Quiero actualizar una variable de sesión de Django siguiendo un evento Javascript (bueno, en realidad jQuery).¿Actualizar la variable de sesión de Django en javascript?

¿Necesito hacer esto a través de una solicitud POST?

¿O pueden Javascript y Django compartir variables de sesión de alguna manera inteligente, en cuyo caso puedo actualizar las variables de sesión directamente desde jQuery? Estoy un poco confuso sobre los detalles.

Gracias!

Respuesta

17

Puede hacerlo a través de Ajax. Tendrá una vista sencilla Django que actualiza la variable de sesión, que el jQuery llamará:

def update_session(request): 
    if not request.is_ajax() or not request.method=='POST': 
     return HttpResponseNotAllowed(['POST']) 

    request.session['mykey'] = 'myvalue' 
    return HttpResponse('ok') 

y la JS:

$.post('/update_session/', function(data) { 
    alert(data); 
}); 
+1

Usted tiene un error tipográfico en su vista de Django, un arrastre '] 'después de asignar el valor. Además, debe devolver 'HttpResponseNotAllowed (['POST',])' en lugar de 'Http404()' –

+0

Espero que no le importe mi solución. También reemplazó 'y no' por' o no'. – jweyrich

+0

gracias chicos ... – AP257

Cuestiones relacionadas