我有一个视图,并登录用户:

def login_user(request):
c = {}
c.update(csrf(request))

username = password = ''
if request.POST:
    username = request.POST.get('username')
    password = request.POST.get('password')

    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            login(request, user)
            c.update(user(request))
            return redirect('/module/')
        else:
            return redirect('/inactive/')
    else:
        return redirect('/failure/')

return render_to_response('core/auth.html',c)

这正确登录用户,因为我可以访问django管理页面,如果我在我的超级用户。

登录并重定向后,我想在屏幕上显示用户名,目前我正在使用

          {% if user.is_authenticated %}
            <p class="navbar-text pull-right">Welcome, {{ user.username }}. Thanks for logging in.</p>
          {% else %}
            <p class="navbar-text pull-right">Welcome, new user. Please log in.</p>
          {% endif %}

但它似乎总是相信用户没有登录。任何帮助将不胜感激。

编辑:这是我的模板上下文处理器

TEMPLATE_CONTEXT_PROCESSORS = (
 "django.contrib.auth.context_processors.auth",
 "django.core.context_processors.debug",
 "django.core.context_processors.i18n",
 "django.core.context_processors.media",
 "django.core.context_processors.static",
 "django.core.context_processors.tz",
 "django.contrib.messages.context_processors.messages",
 "django.core.context_processors.request",
)

===============>>#1 票数:6 已采纳

您是否尝试过向模板发送RequestContext对象?

return render_to_response('core/auth.html', c, context_instance=RequestContext(request))

===============>>#2 票数:1

我建议使用快捷方式render()来完成你的视图:

这将允许您将request对象传递给模板:

return render(request, 'core/auth.html', c)

  ask by CR_Chuck_Norris translate from so

未解决问题?本站智能推荐: