У меня есть странная проблема, я хочу добавить глобальный запрос с помощью процессоров контекста. Это - то, как я сделал это следующим:
сделанный 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 и другие контексты не стало. Какова может быть проблема
Когда вы указываете это:
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.