在HttpResponseRedirect之后丢失会话

时间:2012-04-24 07:22:03

标签: django django-views django-sessions

我看了“How to use sessions”,在django.contrib.sessions.middleware.SessionMiddleware中将MIDDLEWARE_CLASSES添加到django.contrib.sessionsINSTALLED_APPS添加到settings.py,并在我看来尝试了以下内容:

if not request.session.get('confirmed_disclaimer', False):
    if request.method == "POST":
        form = DisclaimerForm(data=request.POST)
        if form.is_valid():
            request.session['confirmed_disclaimer'] = True
            return HttpResponseRedirect('.')
    else:
        form = DisclaimerForm()
else:
    if request.method == "POST":
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            auth_login(request, form.get_user())
            return HttpResponseRedirect('.')
    else:
        form = AuthenticationForm(request)
return render_to_response('login.html', {'form': form, },
                          context_instance=RequestContext(request))

如果尚未确认一次(会话),则应先显示免责声明表单,然后再显示登录表单。但是我在HttpResponseRedirect之后失去了会话。

我使用它错了吗?

任何建议的Thx!

修改

有一个

...
logout(request)
return login(request)
在Mixin中

。每次创建一个新的会话,抱歉和thx试图帮助@DrTyrsa!

0 个答案:

没有答案