在视图呈现Django之后更改会话变量

时间:2017-09-16 14:57:50

标签: python django

我有两个会话变量,在渲染后需要更改。当我尝试以下时 -

def my_view(request) 
    rend= render(request,"chat_page.html",{"answer":questions[request.session["stage"]]["instruction"]})
    request.session["stage"]=request.session["stage"]+1

    return rend

我观察到第一个stage变量被修改然后渲染完成。有一种方法可以在渲染完成后更改stage的值。

1 个答案:

答案 0 :(得分:0)

我相信您需要手动创建一个HttpResponse并插入呈现的字符串,因为render方法返回一个迭代器,直到最后一刻才对其进行求值。

content = render_to_string("chat_page.html",{"answer":questions[request.session["stage"]]["instruction"]})
response = HttpResponse(content)
request.session["stage"] = request.session["stage"] + 1
return response