0
,我用這個清潔的方式在塔中鯖模板得到的用戶名與repoze.name
${request.environ['repoze.who.identity']['user']}
和控制器渲染:
render('file.html')
可我寫這篇文章沒有更好的傳遞每次參數?
,我用這個清潔的方式在塔中鯖模板得到的用戶名與repoze.name
${request.environ['repoze.who.identity']['user']}
和控制器渲染:
render('file.html')
可我寫這篇文章沒有更好的傳遞每次參數?
那麼,您可以自動將變量添加到/lib/base.py中的基本控制器中。這將自動將其添加到您的pylons應用程序中的每個控制器。我使用repoze.what和我要做的就是在base.py我把:
# if there's no user set, just setup a blank instance
c.current_user = auth.get_user(User())
而這僅僅是一種便利的功能,我寫到一個auth庫。 User()是User模型的空白實例,以便模板具有某些內容並且不會拋出無效的密鑰錯誤。
def get_user(default):
"""Return the user object from the `repoze.who` Metadata Plugin
:param default: default item to send back if user not logged in
Since we might not be logged in and template choke on trying to output
None/empty data we can pass in a blank User object to get back as a default
and the templates should work ok with default empty values on that
"""
if 'repoze.who.identity' in request.environ:
return request.environ['repoze.who.identity']['user']
else:
return default
謝謝,我把它作爲部分日誌記錄在會議中 – Timmy 2010-04-16 22:08:11