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. ブラウザが "0.0.0.0:6543/logout" でスタックし、Internal Server Errorと表示されるため、forgetおよびはまったく呼び出されませんでした。HTTPFound
  2. はテンプレートlogout_viewとは関係ありませんが、どこかにレンダリングされているようです。single.ptsingle.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 に答える