我正在研究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)
我上次查看已有一段时间了,但我认为示例中的
logged_in
只是一个示例,用于有条件地检查是否有登录的用户。您也可以轻松地在任何视图或模板中引用request.authenticated_userid
,获得相同的行为,而不必显式地向响应dict添加状态。request
对象也应该可以在视图模板中引用或者,我使用他们的cookbook to add a user object to the request创建了一个友好的
request.user
对象,我可以在需要时使用它来检查登录状态,如果需要的话还可以获取其他用户对象的详细信息相关问题 更多 >
编程相关推荐