我正在使用direct_to_templateurl,但我需要登录用户来显示页面。我如何将其传递给direct_to_template?
1543 次
2 回答
7
如果您的TEMPLATE_CONTEXT_PROCESSORS变量 insettings.py设置为 include 'django.contrib.auth.context_processors.auth',它将已经在页面上下文中。(这是默认配置的)。
direct_to_template通用视图使用RequestContext,因此将有一个名为的上下文变量,user它将提供当前登录的用户(或者AnonymousUser如果没有登录用户)。
例如,要在模板中显示用户名:{{ user.username }}.
有关更多详细信息,请参阅身份验证上下文处理器上的 django 文档。
于 2011-01-19T19:20:04.667 回答
0
在 GET 方法之前将以下内容放在您的登录视图中
def custom_proc(request):
return {
'app': 'myapp',
'user': request.user,
'ip_address': request.META['REMOTE_ADDR']
}
在帖子中的登录视图中
......这里有一些代码......
return render(request, 'html file name',
context_instance=RequestContext(request,processors=custom_proc]))
在设置.py
TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',
)
并在 html 文件中
Hello, username = {{ user.username }} id ={{ user.id }}
于 2013-08-05T06:40:24.523 回答