【发布时间】:2011-11-04 15:50:35
【问题描述】:
如果来自通用视图的一些模板请求,我可以获得{{ user }},它将是经过身份验证的用户(例如我)的对象。
但如果我在没有通用视图的情况下工作,则使用普通视图 {{ user }} 不会返回我的对象。
为什么???
谢谢。
【问题讨论】:
标签: django django-templates django-views
如果来自通用视图的一些模板请求,我可以获得{{ user }},它将是经过身份验证的用户(例如我)的对象。
但如果我在没有通用视图的情况下工作,则使用普通视图 {{ user }} 不会返回我的对象。
为什么???
谢谢。
【问题讨论】:
标签: django django-templates django-views
因为你还没有将它包含在你的模板渲染上下文中。
你需要使用类似的东西:
def my_view(request, …):
…
return render_to_response("my_template.html", {
…,
"user": request.user,
})
【讨论】:
user 可用(请参阅docs.djangoproject.com/en/dev/ref/templates/api)。
'django.contrib.auth.context_processors.auth' 在你的TEMPLATE_CONTEXT_PROCESSORS 中吗
render_to_response,则在添加上下文处理器后仍然不可用。请务必查看 Catavaran 解决此问题的答案
如果您使用的是render_to_response(),那么您需要在 RequestContext 实例中添加第三个参数:
return render_to_response('my_template.html',
{'my_data', my_data},
context_instance=RequestContext(request))
更多详情https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#django.shortcuts.render_to_response
【讨论】: