不知你是否注意到了,在每个template中,都可以通过{{ user }} 获取到request.user,还可以通过{{ MEDIA_URL }} 获取到settings.py中定义的settings.MEDIA_URL。
它是通过定义processor实现的,具体来说,就是自定义一个processor函数,此函数接受request作为参数,返回一个dict,然后将此函数放入settings.py中的TEMPLATE_CONTEXT_PROCESSORS元组中,就可以在每个传入context_instance 为RequestContext实例的view所对应的template中获取到该变量。
对于你这种情况,processor函数如下:
def site_name(request):
"""
Adds SITE_NAME context variables to the context.
"""
return {'SITE_NAME': settings.SITE_NAME}
你可以参考下我的blog:
http://www.nerdyang.com/2012/04/19/django-template%E4%B8%AD%E7%9A%84context/