0

我正在使用direct_to_templateurl,但我需要登录用户来显示页面。我如何将其传递给direct_to_template?

4

2 回答 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 回答