Джанго запрос в шаблоне - PullRequest
21 голосов
/ 31 марта 2009

Я включил обработчик запросов 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

Ответы [ 5 ]

41 голосов
/ 02 апреля 2010

settings.py:

TEMPLATE_CONTEXT_PROCESSORS = (
  # ...
  'django.core.context_processors.request',
  # ...
)
11 голосов
/ 31 марта 2009

TEMPLATE_CONTEXT_PROCESSORS вместо TEMPLATE_PROCESSORS

6 голосов
/ 04 февраля 2016

Имейте в виду, что в 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 .

0 голосов
/ 17 ноября 2013

MIDDLEWARE_CLASSES = ( ... 'Yourfolder.yourfile.yourclass', ... YourClass:

класс AddRequestToTemplate: process_templaet_response (self, request, response): response.context_data [ 'запрос'] = запрос

0 голосов
/ 01 апреля 2009

Вы уверены, что у вас нет переменной request, доступной для шаблона? Что происходит при удалении строки

'request':request,

это отличается от того, когда эта строка присутствует. Если ваш шаблон загружается одинаково, проблема в вашем шаблоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...