您想使用context_instance
和RequestContext
s。
首先,在您的顶部添加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 模板文档。