我有以下 REST 方法,每次单击 jQuery 选项卡以存储活动选项卡时都会更新会话的值。
@csrf_exempt
def update_active_tab_request(request):
"""
Stores the active tab for a given tab item
"""
for tab, active in request.GET.iteritems():
request.session[tab] = int(active)
return HttpResponse("OK", status=200)
这是一个相当简单的例程,我遇到的问题是该值并不总是存储在会话中。我查看了 Web 服务器日志,并添加了日志语句来验证代码是否被调用。一切似乎都在工作,但我发现当此方法返回时会话可能没有更新。
考虑到更新会话可能是性能/同步问题,我已将会话存储更改为SESSION_ENGINE='django.contrib.sessions.backends.cache'
. 这没有帮助。我还设置SESSION_SAVE_EVERY_REQUEST=True
为始终保存会话。这也没有帮助。
我无法解释这种行为。任何有助于阐明问题的帮助将不胜感激。