0

我对此很陌生,我已经尝试了几个小时,但它不起作用。如果您能帮助我,我将不胜感激。太感谢了。

这是我的代码:

def login_view(request):

    username1 = request.POST['username']
    password1 = request.POST['password']
    user = auth.authenticate(username=username1, password=password1)
    if user is not None and user.is_active:
        # Correct password, and the user is marked "active"
        auth.login(request, user)
        # Redirect to a success page.
        return HttpResponseRedirect("/account/loggedin/")
    else:
        # Show an error page
        return HttpResponseRedirect("/account/invalid/")



def profile_page(request):
    html = loader.get_template('profile_test.html')
    login_view(request)
    c = Context({'user' : username1})
    return HttpResponse(html.render(c))

当我将 username1 放在 profile_page 引号中时,一切正常。但是,当我使用 username1 作为全局变量时,它不起作用。如何使用 username1 作为全局变量?非常感谢,我已经尝试了好几个小时了,但没有任何效果。再次感谢你。

4

1 回答 1

1

因为没有返回 HttpResponse,所以 login_view 调用什么也不做。

如果您的用户已登录,则任何请求都应自动包含该用户。所以,例如:

if request.user.is_authenticated():
    user = request.user
    context['user'] = user.username

否则,您可以在 url 中传递用户,然后在视图中获取用户名(或者只使用模板中的用户对象并将 {{ user.username }} 插入到您的模板中。

于 2012-12-27T01:30:19.970 回答