0

すべてのテンプレートに変数が渡されるように、コンテキスト プロセッサを作成しました。

私のsettings.pyは次のようになります:

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'myapp.context_processors.setting_processor',
)

単一のビューで私は渡します:

request_context = RequestContext(request,
            processors=[setting_processor])

    return render(request, 'settings.html', context, context_instance=request_context)

また、プロセッサを挿入すると、サイトのすべてのビューでトリガーされます。ビューからリクエストコンテキストを渡したときにのみヒットすると思いましたか?

私が行くすべてのビューに表示されるコードは次のとおりです。

def setting_processor(request):
    print '--------------- in content processor'

特定のビューでのみコンテキスト プロセッサをトリガーするにはどうすればよいですか?

4

1 に答える 1

1

プロセッサを設定に追加すると、すべてのビューに渡されます。

単一のビューでのみ設定を削除したい場合は、上記のものを使用してください。

request_context = RequestContext(request,
            processors=[setting_processor])

    return render(request, 'settings.html', context, context_instance=request_context)
于 2013-08-20T17:19:15.290 に答える