-1

Django で新しいビューを作成せずに、すべてのテンプレートで環境変数 (例: Mixpanel_Token) を取得する必要があります。

SOで読んだことから、テンプレートコンテキストプロセッサを使用する必要があります。

context_processor は context_processors.py ファイルで定義されています。

from django.conf import settings
def settings_mixpanel(request):
    ctx = {
        "MIXPANEL_TOKEN": settings.MIXPANEL_TOKEN,
    }
    return ctx

私のsettings.pyファイルでは:

TEMPLATE_CONTEXT_PROCESSORS = (
'utils.context_processors.settings_mixpanel',
)

私が遭遇する問題はMIXPANEL_TOKEN、すべてのビューが Django で既に作成されている場合、すべてのテンプレートでコンテキスト変数として定義する方法です。

関数を使用して、以下のようなビューを再作成したくありません。render_to_response

    def index(request):
    return render_to_response("index.html", {},context_instance=RequestContext(request))
4

3 に答える 3

4

特別なことをする必要はありません。テンプレートが でレンダリングされている限り、 でRequestContext変数にアクセスできます{{ MIXPANEL_TOKEN }}

于 2012-10-11T11:18:08.953 に答える
0

これは非常に簡単で単純明快です。コンテキスト プロセッサは RequestContext(...) によって呼び出されます。RequestContext(...) を使用しない場合、コンテキスト プロセッサは使用されないため、何の価値もありません。必ずしも render_to_response を使用する必要はありませんが、RequestContext は必須です。好むと好まざるとにかかわらず、それが Django の仕組みです。しかし、私の個人的な見解では、既存のビューを RequestContext を使用するように変更することは、それほど大きなことではありません。

于 2012-10-11T11:55:03.133 に答える