0

登录效果很好,我的 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>")

看起来,

  1. 并且根本没有被调用forgetHTTPFound因为浏览器停留在“0.0.0.0:6543/logout,说Internal Server Error
  2. 与模板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),
}

请帮忙。

4

1 回答 1

2

看起来您的路线排序搞砸了并且/{id}之前匹配/logout,有效地隐藏了它。反转您add_route对该注销的调用首先匹配。

于 2013-04-16T06:57:56.840 回答