Django, шаблонные процессоры контекста

У меня есть странная проблема, я хочу добавить глобальный запрос с помощью процессоров контекста. Это - то, как я сделал это следующим:

сделанный processor.py в моем приложении как таковом:

from myproject.myapp.models import Foo

def foos(request):
    return {'foos': Foo.objects.all()}

и в конце моего setting.py я добавил это:

TEMPLATE_CONTEXT_PROCESSORS = ('myapp.processor.foos',)

Наконец я передаю свое представление как это:

def index_view(request):

    return render_to_response('index.html', {}, context_instance=RequestContext(request))

и в моем шаблоне index.html:


И наконец мой URL:

(r'^$', 'myapp.views.index_view'),

Моего дисплея foos без любой проблемы, однако мой media_url и другие контексты не стало. Какова может быть проблема

61
задан Hellnar 11 February 2010 в 18:34
поделиться

1 ответ

Когда вы указываете это:

TEMPLATE_CONTEXT_PROCESSORS = ('myapp.processor.foos',)

В вашем файле настроек вы переопределяете процессоры контекста по умолчанию Django . Чтобы расширить список , вам необходимо включить значения по умолчанию в свои настройки:

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "myapp.processor.foos",
)

Обратите внимание, что настройки выше являются значениями по умолчанию (плюс ваш процессор) для django 1.1.

55
ответ дан 24 November 2019 в 16:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: