Есть много страниц на сайте, все они наследуются от одной базовой.
Надо передать переменную в базовый шаблон, чтобы для каждой страницы не прописывать эти переменные.
Судя по документации Django это можно сделать с помощью RequestContext.
Этот код из документации отлично работает
from django.http import HttpResponse
from django.template import RequestContext, Template
def ip_address_processor(request):
return {'ip_address': request.META['REMOTE_ADDR']}
def client_ip_view(request):
template = Template('{{ title }}: {{ ip_address }}')
context = RequestContext(request, {
'title': 'Your IP Address',
})
return HttpResponse(template.render(context))
При попытке подключения файла html начинается проблема
def home(request):
template = get_template('home/home.html')
context = RequestContext(request, {
'title': 'Your IP Address',
})
return HttpResponse(template.render(context))
Выдается ошибка: TypeError: context must be a dict rather than RequestContext.
Прошу помогите. Заранее очень вам благодарен.
Ответ: RequestContext совсем не нужен. Надо прописать контекстный процессор, указать его в settings.
def custom_proc(request):
"A context processor that provides 'app', 'user' and 'ip_address'."
param = request.session.get('Param')
data = {"param":param}
return data
В процессорах Templates вставил name_of_folder.name_of_file.custom_proc