0

所以我找到了关于在金字塔视图文件中设置会话变量的答案,然后在 mako 模板中访问它。(如何访问 Mako 模板和 Pyramid 中的会话变量?

我想知道你是否可以反过来做。所以而不是:

金字塔视图.py

def thisView(request):
    session = request.session
    session['selectedclientid'] = 'test' #selectedclient.id
    session.save()

网页.mako

${request.session['selectedclientid']}

我可以交换它以便我可以这样做吗?

网页.mako

${request.session['selectedclientid'] = '5'}

金字塔视图.py

def thisView(request):
    someLogicOn(session['selectedclientid'])

到目前为止,我一直未能成功实现它,我不确定这是否只是由于缺乏了解如何做到这一点,或者它是否是无法完成的事情。任何建议都会很棒!

4

1 回答 1

1

在典型的渲染工作流程中,视图在渲染器之前执行。目前尚不清楚您打算如何纠正这一点。我猜,如果你render在视图中称呼自己,这是可能的,所以我会展示这一点。

网页.mako:

<%
request.session['selectedClientId'] = '5'
%>

代码:

def thisView(request):
    response = render_to_response('webpage.mako', {}, request=request)
    someLogicOn(request.session['selectedClientId'])
    return response

虽然这在逻辑上有点落后,所以你可能要三思而后行。

于 2013-04-20T18:08:30.730 回答