8

ログインしたユーザーのメニュー項目のリストを表示するカスタムコンテキストプロセッサを作成しようとしています。私は次のことをしました:


私のsettings.py内に私は持っています

TEMPLATE_CONTEXT_PROCESSOR =(
    'django.contrib.auth.context_processors.auth'、
    'mysite.accounts.context_processors.user_menu'、
)。

今のところ、accountsサブモジュールの下にcontext_processors.py次のものがあります。

def user_menu(request):
    return {'user_menu':'Hello World'}

テンプレートページには、次のものがあります。

{%if user.is_authenticated%}
メニュー
{{user_menu}}
{%endif%}

呼び出しビューは次のとおりです。

def profile(request):
    戻り値render_to_response('accounts / profile.html'、context_instance = RequestContext(request))

ただし、ページ上で何かをレンダリングすることはできませ{{user_menu}}ん。同様のチェックを行ったテンプレートの他のセクションが正しくレンダリングされるため、ユーザーが認証されていることがわかります。私はここで何かが欠けていますか?助けてくださいありがとう

編集: Ben、Danielに感謝します、私は(S)を修正しましたがTEMPLATE_CONTEXT_PROCESSOR、Djangoはモジュールを解決するのに問題があり、次のメッセージが表示されます

リクエストプロセッサモジュールdjango.contrib.auth.context_processorsのインポート中にエラーが発生しました:"context_processorsという名前のモジュールがありません"

更新:パスをdjango.core.context_processors.auth「モジュールが移動されたように見える」に変更して修正しました

4

1 に答える 1

5

設定名はTEMPLATE_CONTEXT_PROCESSORS、S付きである必要があります。

于 2010-02-27T21:00:36.173 に答える