Обновить переменную сеанса Django в javascript?

Я хочу обновить переменную сеанса Django после события Javascript (ну, на самом деле jQuery).

Нужно ли это делать с помощью запроса POST?

Или может Javascript и Django разделять переменные сеанса каким-то умным способом, и в этом случае я могу обновить переменные сеанса напрямую из jQuery? Я немного туманна в деталях.

Спасибо!

Ответ 1

Вы можете сделать это через Ajax. Вам понадобится простое представление Django, которое обновляет переменную сеанса, которую вызовет jQuery:

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);
});