【发布时间】:2011-06-03 12:47:17
【问题描述】:
我想在 Javascript 事件(实际上是 jQuery)之后更新 Django 会话变量。
我需要通过 POST 请求执行此操作吗?
或者 Javascript 和 Django 可以以某种巧妙的方式共享会话变量,在这种情况下,我可以直接从 jQuery 更新会话变量吗?我对细节有点模糊。
谢谢!
【问题讨论】:
标签: javascript django session
我想在 Javascript 事件(实际上是 jQuery)之后更新 Django 会话变量。
我需要通过 POST 请求执行此操作吗?
或者 Javascript 和 Django 可以以某种巧妙的方式共享会话变量,在这种情况下,我可以直接从 jQuery 更新会话变量吗?我对细节有点模糊。
谢谢!
【问题讨论】:
标签: javascript django session
您可以通过 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);
});
【讨论】:
]。此外,您应该返回 HttpResponseNotAllowed(['POST',]) 而不是 Http404()
and not 替换为or not。