用户未被传递给模板TEMPLATE_CONTEXT_PROCESSORS

时间:2014-06-30 16:31:30

标签: django

关注docs

  

如果TEMPLATE_CONTEXT_PROCESSORS包含此处理器,每个   RequestContext将包含以下变量:

     

user - 表示当前登录用户的auth.User实例   (或AnonymousUser实例,如果客户端未登录)。烫发 -   django.contrib.auth.context_processors.PermWrapper的一个实例,   表示当前登录用户拥有的权限。

我将这些行添加到settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
)

按如下方式渲染我的模板

def profile_view(request):
    return render_to_response('profile.html', { 'profile' : 1 })

我的印象是请求上下文和用户将自动传递。是不是这样,或者我应该在每个视图中明确添加context_instance=template.RequestContext(request))吗?

感谢。

1 个答案:

答案 0 :(得分:1)

是的,如果您想使用render_to_response并且希望模板上下文数据可用,则应传入RequestContext实例。

或者,如果您使用django.shortcuts.render呈现网页,则RequestContext会自动注入。

您可能会发现此答案也很有用:Django - what is the difference between render(), render_to_response() and direct_to_template()?