2010-02-02 58 views
0

我似乎无法访问我的包含模板中的request.sessions。任何想法如何获得这些数据?会议是我自己的,自定义的。在包含内包含会话

我的包看起来像

@register.inclusion_tag('base/side_bar.html', takes_context=True) 
    def show_side_bar(context): 
    models = Model.objects.all() 
    makes = Make.objects.all() 
    request = context['request'] 

return { 
    'makes':makes, 
    'models':models, 
} 

这样的错误了,并说

捕获的异常而渲染: '请求'

我正与

调用此
{% load extras %} 
{% show_side_bar %} 
+0

当您说'包含模板'时,是指'包含标记中使用的模板'还是'您的意思是通过'{%include%}'包含模板?这只是包含模板的问题,还是它也发生在主模板中? – 2010-02-02 11:29:55

+0

您需要从视图函数中提供一段代码,以显示您传递给模板的对象。 – 2010-02-02 11:32:20

+0

我正在使用{%load extras%},然后是{%user_details%}。 user_details()方法在templatetags/extras.py中,似乎无法访问extras.py mod中的request.sessions。 – dotty 2010-02-02 11:40:17

回答

2

要在您的模板上下文中有request变量,django.core.context_processors.request上下文处理器需要位于您的TEMPLATE_CONTEXT_PROCESSORS设置中。诀窍是,它不在默认情况下。如果你想从上下文中获得它,你需要将它添加到你的设置中。 (有关上下文处理器的更多信息,请参阅http://docs.djangoproject.com/en/1.1/ref/templates/api/#id1。)

+0

我已将这些内容添加到设置文件中。我已经将该上下文变量添加到了我的方法中。但是上下文变量只包含一堆模型对象。 – dotty 2010-02-02 19:26:57