2009-10-06 70 views
4

我一定错过了设置自定义模板上下文的事情,因为它永远不会被调用。为什么我的django模板上下文处理器没有被调用

在设置:

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", 
) 
在网络

/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}} 

回答

14

你记得使用RequestContext渲染时模板?

由于Django的1.3,有一个新的快捷功能,render,它默认使用RequestContext:从我的广泛的谷歌搜索的例子

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

不作为没有表现出来! http://stackoverflow.com/questions/557460/django-having-middleware-communicate-with-views-templates http://stackoverflow.com/questions/1025025/django-context-processor-trouble http:///lethain.com/zh-CN/entry/2007/jun/14/a-django-middleware-for-google-analytics-repost/ ... – PhoebeB 2009-10-07 13:22:28

相关问题