2011-01-04 13 views
10

Javascriptイベント(実際はjQuery)に続いてDjangoセッション変数を更新したいとします。javascriptのDjangoセッション変数を更新しますか?

私はPOSTリクエストでこれを行う必要がありますか?

また、JavascriptとDjangoがセッション変数を共有することもできます。この場合、jQueryからセッション変数を直接更新できますか?私は細部に少し曇っている。

ありがとうございます!

答えて

17

これはAjax経由で行うことができます。あなたはjQueryのが呼び出すされ、セッション変数を更新し、簡単なDjangoのビューが必要になります:

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

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

とJS:

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

あなたのDjangoのビュー、末尾 ']のタイプミスを持っています'あなたが値を割り当てた後。また、 'Http404()'の代わりに 'HttpResponseNotAllowed([POST '、])'を返さなければなりません。 –

+0

私の修正を気にしないでください。 'でもなく'で置き換えられます。 – jweyrich

+0

おかげでチャップ... – AP257

関連する問題