Почему это Django обработчик контекста шаблона не применяется для всех запросов?

Я столкнулся со следующей проблемой контекстного процессора шаблона Django.

Контекстный процессор определено в myapp / context_processors.py :

def my_context_processor(request):
    return {
        'foo': 123,
    }

Он подключен в settings.py вместе со стандартными процессорами контекста Django:

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

Проблема, с которой я столкнулся, заключается в том, что my_context_processor не применяется для все запросы.

Он не применяется для следующего кода:

def index(request):
    return render_to_response("index.html", locals())

Однако применяется для следующего кода:

def index(request):
    return render_to_response("index.html", locals(), context_instance=RequestContext(request))

У меня создалось впечатление, что контекст процессоры применяются для ВСЕХ запросов, а не только тогда, когда предоставляется context_instance .

Как сделать так, чтобы мои контекстные процессоры применялись для ВСЕХ запросов?

5
задан knorv 11 July 2011 в 16:26
поделиться