所有模板中都有用户名

vir*_*tor 2 python authentication login pyramid

我正在尝试在所有模板中提供当前登录的用户名.我可以从中接收它pyramid.security.authenticated_userid,但要做到这一点,我需要请求对象.我试图通过BeforeRender订阅,但据我所知,请求没有传递给该回调.

我怎么能在任何地方(或在基本模板中)提供用户名?

Mic*_*kel 5

一种常见的方法是通过此cookbook配方将用户对象附加到请求.

另一种可能性是按照您建议使用BeforeRender订户的方式附加它.该request从可用event:

def add_renderer_globals(event):
    request, context = event['request'], event['context']
    event['user'] = authenticated_userid(request)
Run Code Online (Sandbox Code Playgroud)