Вы хотите использовать context_instance
и RequestContext
с.
Сначала добавьте вверху вашего views.py
:
from django.template import RequestContext
Затем обновите все ваши представления так, чтобы они выглядели так:
def someview(request, ...)
...
return render_to_response('viewtemplate.html', someContext, context_instance=RequestContext(request))
В вашем settings.py
добавьте:
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.auth',
...
'myproj.app.context_processors.dynamic',
'myproj.app.context_processors.sidebar',
'myproj.app.context_processors.etc',
)
Каждый из этих context_processors
является функцией, принимает объект request
и возвращает контекст в виде словаря. Просто поместите все функции в context_processors.py
внутри соответствующего приложения. Например, блог может иметь боковую панель со списком последних записей и комментариев. context_processors.py
будет просто определять:
def sidebar(request):
recent_entry_list = Entry.objects...
recent_comment_list = Comment.objects...
return {'recent_entry_list': recent_entry_list, 'recent_comment_list': recent_comment_list}
Вы можете добавить столько, сколько захотите.
Для более подробной информации, ознакомьтесь с Django Template Docs .