代码
@register.inclusion_tag('template.html', takes_context=True)
def include_client_side_bar(context):
return {
'STATIC_URL': settings.STATIC_URL,
}
我的代码将是这样的,我想访问此函数中的request.user对象,但我无法得到它。
在调试器中,我可以看到这些变量。
据我所知,我已经在django 1.3中成功完成了这项工作,我是否错过了什么?
答案 0 :(得分:1)
确保您已在TEMPLATE_CONTEXT_PROCESSORS
设置中加入request context processor,并且您的视图以RequestContext
呈现。
答案 1 :(得分:1)
如果请求密钥不存在,请尝试使用request = context.get('request', None)
分配无值。
http://docs.python.org/library/stdtypes.html#dict.get
<强>更新强>
此外,您可以将用户传递给inclus_tag,类似
# In your template_tag
@register.inclusion_tag('template.html', takes_context=True)
def include_client_side_bar(context, user):
if user:
pass # do something
return {
'STATIC_URL': settings.STATIC_URL,
}
# in your template
{% include_client_side_bar user=request.user %}