запрос django в шаблоне
Вопрос
Я включил процессор запросов django
TEMPLATE_PROCESSORS = (
"django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.request",
)
Тем не менее, мне не нужно запрашивать переменную, доступную в шаблонах.Я должен передать это вручную.Использование django 1.0.2 Везде в Интернете кажется, что речь идет только о включенном процессоре запросов..
Также я использую RequestContext как :
return render_to_response(
'profile.html',
{
'persons':Person.objects.all(),
'person':Person.objects.get(id=id),
'request':request,
},
context_instance=RequestContext(request)
)
не повезло
о, черт возьми
новое название для этого - TEMPLATE_CONTEXT_PROCESSORS
Решение
settings.py:
TEMPLATE_CONTEXT_PROCESSORS = (
# ...
'django.core.context_processors.request',
# ...
)
Другие советы
TEMPLATE_CONTEXT_PROCESSORS вместо TEMPLATE_PROCESSORS
Имейте в виду, что начиная с Django 1.8, это изменилось на параметр "ШАБЛОНЫ", и в конфигурации по умолчанию обработчик запросов НЕ включен.
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
# insert your TEMPLATE_DIRS here
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
# Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
# list if you haven't customized them:
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
],
},
},]
Просто добавьте обработчик запросов обратно, чтобы устранить проблему:
'django.core.context_processors.request',
Для получения дополнительной информации смотрите Документы по обновлению Django.
Вы уверены, что у вас нет request
переменная, доступная для шаблона?Что происходит, когда вы удаляете строку
'request':request,
это отличается от того, когда присутствует эта строка.Если ваш шаблон загружается одинаково в любом случае, проблема связана с вашим шаблоном.
ПРОМЕЖУТОЧНЫЕ_КЛАССЫ=( ...'твоя папка.твой файл.твой класс', ...ваш класс:
класс AddRequestToTemplate:process_templaet_response(сам, запрос, ответ):ответ.context_data['запрос']=запрос