登录效果很好,我的logout_view:
@view_config(route_name='logout')
def logout_view(request):
headers = forget(request)
raise HTTPFound(location='request.application_url',headers=headers)
我得到的输出:
AttributeError: 'NoneType' object has no attribute 'name'
(in template single.pt LINE 11: "<p tal:content="result.name"></p>")
似乎,
forget
和HTTPFound
根本没有被调用,因为浏览器停留在“0.0.0.0:6543/logout,说内部服务器错误。logout_view
与single.pt
模板无关,但似乎single.pt
在某处呈现。 顺便说一句,single.pt
模板仅用于与rst_view
相关联的config.add_route('rst', '/{id}')
以下内容:
@view_config(route_name='rst', renderer='templates/single.pt',
permission='edit',)
def rst_view(request):
rstId=request.matchdict['id']
rst=DBSession.query(Rst).get(rstId)
return {
'result':rst,
'logged_in':authenticated_userid(request),
}
请帮忙。
答案 0 :(得分:2)
看起来您的路线排序混乱,/{id}
在/logout
之前匹配,有效地隐藏了它。将您的add_route
次呼叫撤消到该登出首先匹配。