如何在Mako模板和金字塔中访问会话变量?

时间:2012-11-06 02:32:44

标签: python pyramid mako

我有这个金字塔观点:

def ClientView(request):
    session = request.session
    session['selectedclientid'] = 'test' #selectedclient.id
    session.save()
    return dict(
        logged_in=authenticated_userid(request)
    )

然后在我的模板中,我只是尝试这样的事情:

% if session['selectedclientid'] != None:
                The session has something
            % endif

这给了我一个模板错误:

    % if session['selectedclientid'] != None:
TypeError: 'Undefined' object has no attribute '__getitem__'

我是否设置会话变量错误?我查错了吗?我是否甚至需要首先制作request.session对象和.save()的副本?我不能只做request.session['myvariable'] = 'foo'并设置它吗?这仍然无法帮助我将其拉回到模板中。

2 个答案:

答案 0 :(得分:2)

request.session是模板中的变量。不是session。这就是您获得Undefined例外的原因。

答案 1 :(得分:0)

我想我明白了。我仍然可以这样设置:

request.session['selectedclientid'] = 'test'

但阅读它的工作原理如下:

% if 'selectedclientid' in request.session:
                The session has something ${request.session['selectedclientid']}
            % endif