2010-02-04 70 views
4

我阅读本如何激活DJANGO.CORE.CONTEXT_PROCESSORS.REQUEST

“DJANGO.CORE.CONTEXT_PROCESSORS.REQUEST 如果TEMPLATE_CONTEXT_PROCESSORS包含此处理器,每 RequestContext将包含一个可变的要求,这是目前的 的HttpRequest需要注意的是这款处理器默认不启用; 你必须激活它“从这个页面

http://docs.djangoproject.com/en/dev/ref/templates/api/

但似乎没有信息如何交流。调整这个处理器。

这是我原来的问题我也跟着答案

Access request in django custom template tags

我仍然有错误

TemplateSyntaxError at/Caught an exception while rendering: 'request' Original Traceback (most recent call last): 
File "C:\Python25\lib\site-packages\django\template\debug.py", line 71, in render_node result = node.render(context) 
File "C:\Python25\lib\site-packages\django\template__init__.py", line 936, in render dict = func(*args) 
File "c:\...\myapp_extras.py", line 7, in login request = context['request'] 
File "C:\Python25\lib\site-packages\django\template\context.py", line 44, in getitem raise KeyError(key) KeyError: 'request' 

的代码引起的问题是

请求=背景['重追求']

from django import template 

register = template.Library() 


@register.inclusion_tag('userinfo.html',takes_context = True) 
def userinfo(context): 
request = context['request'] 
address = request.session['address'] 
return {'address':address} 
+0

它看起来像老乡想帮你在谷歌集团是有帮助的。你应该张贴他要求的代码。 – 2010-02-04 20:07:31

回答

2

我回答了这个位置:How can I pass data to any template from any view in Django?

也看到我的答案的评论......你可能要信息的那个有点太。

+0

谢谢,但我已经通过了“takes_context =真” ,我已经“django.core.context_processors.request”列入settings.py 为什么它仍然得到KeyError异常,当我打电话背景[“请求”] – icn 2010-02-04 19:07:58

+0

何不你打印上下文(或context.keys())并看看里面有什么。显然,上下文没有“请求”键,所以看看它有什么键。 – 2010-02-04 19:51:04

+0

不好意思再问.. 我得到这个 异常值:\t 捕获的异常而呈现:“语境”对象有没有属性“钥匙” – icn 2010-02-04 20:00:52

2

settings.py中

from django.conf import global_settings 

TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
    'django.core.context_processors.request', 
) 
+0

中传递“context_instance = RequestContext(request)”请注意,设置文件不应该从global_settings导入,因为这是冗余的 - > https:/ /docs.djangoproject.com/en/dev/topics/settings/#default-settings – Medorator 2014-04-06 18:35:35

+0

该评论是关于导入一个变量只是为了重用它,这将发生无论如何。在这里,代码将添加到来自global_settings的默认设置,因此需要导入它才能访问它。 – 2014-05-22 10:19:02