在字典中为所有视图包括经过身份验证的用户

2024-04-26 14:58:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究Pyramid authorization tutorial,我注意到了

logged_in = request.authenticated_userid

添加到每个视图字典。可以避免吗?也就是说,是否有一个配置自动广告用户id到每个视图。或者有没有一种方法可以用用户id创建一个基本的抽象视图并从中继承

教程中的部分代码:

@view_config(context='.models.Page', renderer='templates/view.pt', permission='view')
def view_page(context, request):
    # not relevant code
    return dict(page = context, content = content, edit_url = edit_url,
                logged_in = request.authenticated_userid)

@view_config(name='add_page', context='.models.Wiki', renderer='templates/edit.pt', 
             permission='edit')
def add_page(context, request):
     # not relevant code
     return dict(page=page, save_url=save_url,
                 logged_in=request.authenticated_userid)

Tags: 用户inview视图idconfigurlmodels
1条回答
网友
1楼 · 发布于 2024-04-26 14:58:37

我上次查看已有一段时间了,但我认为示例中的logged_in只是一个示例,用于有条件地检查是否有登录的用户。您也可以轻松地在任何视图或模板中引用request.authenticated_userid,获得相同的行为,而不必显式地向响应dict添加状态。request对象也应该可以在视图模板中引用

或者,我使用他们的cookbook to add a user object to the request创建了一个友好的request.user对象,我可以在需要时使用它来检查登录状态,如果需要的话还可以获取其他用户对象的详细信息

相关问题 更多 >