为什么我的django模板上下文处理器没有被调用

时间:2009-10-06 19:29:47

标签: django django-templates

我一定错过了设置自定义模板上下文的功能,因为它永远不会被调用。

在设置中:

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django_authopenid.context_processors.authopenid",
    "web.context_processors.my_hat",
)
web / context_processors.py中的

from libs.utils import get_hat, get_project, my_hats

print 'heloooo'

def my_hat(request):
    """Insert some additional information into the template context
    """
     
    import pdb
    pdb.set_trace()

    print 'hiiiiiiii'

    return {'hat': get_hat(request),
        'project': get_project(request),
        }

没有输出任何内容,django进程查看并显示模板,而不会遇到此问题。我错过了什么!?

感谢Insin,我错过了一些内容:

在view.py

return render_to_response(template, {
        'tasks': tasks,
    },
    context_instance=RequestContext(request))

在模板中:

  My current hat is {{hat}}

1 个答案:

答案 0 :(得分:15)

您是否记得在渲染模板时使用RequestContext

从Django 1.3开始,有一个新的快捷功能render,默认情况下使用RequestContext

return render(request, template, {
    'tasks': tasks,
})