0

ピラミッド wiki のチュートリアルに非常に厳密に従っていますが、実際にエディターとしてログインすると、次のメッセージがスローされます。

NameError: logged_in

 - Expression: "logged_in"
 - Filename:   /Users/erik/pyramid/tutorial/tutorial/templates/edit.pt
 - Location:   (line 25: col 23)
 - Source:     <span tal:condition="logged_in">
                                    ^^^^^^^^^

コードを調べるlogged_inと、リクエストに添付されているメカニズムがわかりません。

奇妙なことに、URI から削除すると、ログアウト リンクがテンプレート/edit_pageに正しく表示されます。viewing困惑、バンクーバーで...

4

1 に答える 1

3

logged_inリクエストの一部ではなく、編集ビューによってテンプレートに渡されるデータです。チュートリアルのview.pyの 72 ~ 84 行目を見てください。

@view_config(name='edit_page', context='.models.Page',
             renderer='templates/edit.pt',
             permission='edit')
def edit_page(context, request):
    if 'form.submitted' in request.params:
        context.data = request.params['body']
        return HTTPFound(location = request.resource_url(context))

    logged_in = authenticated_userid(request)

    return dict(page = context,
                save_url = request.resource_url(context, 'edit_page'),
                logged_in = logged_in)

ここでlogged_inは、呼び出しを介して設定さauthenticated_useridれ、返される辞書の一部としてテンプレートに渡されていることがわかります。

edit_pageビューが に正しく接続され、正しい名前としてview_config返されていることを確認してください。logged_in

于 2013-09-03T06:16:16.290 に答える