在Django中的HttpResponseRedirect之后会话被丢弃了吗?

时间:2018-05-25 01:07:00

标签: django web django-views django-sessions

我在Django中有一个多页面的表单。也就是说我有多个Django Form对象分布在五个左右的模板中。我想要做的是在页面之间传递该表单,然后将其提交到字符串末尾的模型。我的代码段如下:

def firstFormStep(request):
    if form.is_valid() :
        for field in form :
            request.session[str(field.name)] = form.cleaned_data[str(field.name)]
        request.session.modified = True
        request.session.save()
        print ("Request: " + str(request.session.items()))
        print ("Session: " + str(request.session.session_key))
        return HttpResponseRedirect(reverse('core:nextFormStep'), request)

在session.save()之前,我的session_key为None。之后是一个数字。

我的下一个观点的第一行是:

def nextFormStep(request):
    print ("Session: " + str(request.session.session_key))

此时的session_key为None。在HttpResponseRedirect的某处,我的会话被删除了。为什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

感谢Usman Maqbool我发现我的错误是我的开发环境中SESSION_COOKIE_SECURE设置为True。