0

コンテキスト プロセッサに変数を登録したいのですが、それが機能せず、エラーが表示されないという問題が発生します。

ビュー.py :-

def newmessage(request):
    getmessagevalue = interview.objects.all()
    return {'getmessagevalue': getmessagevalue }

settings.py :-

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.contrib.messages.context_processors.messages",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.static",
    "django.core.context_processors.media",
    "django.core.context_processors.request",
    "django.core.context_processors.tz",
    "userprofile.views.newmessage"

)

どうすればいいですか、エラーと値が表示されません。

4

1 に答える 1

1

あなたが私たちに示したコードは私には問題ないようです。ビュー (表示されていません) がリクエスト コンテキストを使用してテンプレートをレンダリングしていることを確認する必要があります。詳細については、ドキュメントを参照してください。

ロギング ステートメントまたは print ステートメントをコンテキスト プロセッサに追加して、それがビューで実行されていることを確認します。データベースにオブジェクトがない可能性がinterviewあるため、空のクエリセットが返されます。

デバッグを支援するもう 1 つのオプションは、Django デバッグ ツールバーをインストールすることです。テンプレート コンテキスト プロセッサの出力を表示するTemplateパネルがあります。

別のいくつかの提案:

  • モデルInterviewに名前を付け、メソッドnew_messageと変数get_message_valueの名前にアンダースコアを使用します。
  • userprofile.context_processorsビュー モジュールではなく、別のモジュールにコンテキスト プロセッサを配置します。

これらの規則に従えば、コードは経験豊富な Python や Django の開発者にとって非常に読みやすくなり、質問に対する回答が得られる可能性が高くなります。

于 2013-09-05T11:17:08.393 に答える