2012-11-06 30 views
1

我有這個金字塔的看法:如何訪問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'並設置它嗎?這仍然不能幫助我將它拉回到模板中。

+0

閱讀: http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/single_file_tasks/single_file_tasks.html – felipsmartins

+0

都不是很好的蟒蛇,但不是在鯖undefined是什麼應該反對,如果尋找進行檢查一個值 – Dean

回答

2

request.session在模板中的變量。不是session。這就是爲什麼你會得到Undefined例外。

0

我想我明白了。我仍然可以設置它像這樣:

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

但看完回來的工作是這樣的:

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