我有一个简单的登录功能。
def login(request):
args = {}
args.update(csrf(request))
if request.POST:
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return redirect('/')
else:
return redirect('/')
else:
return redirect('/')
在我的模板中,我使用if
语句仅为经过身份验证的用户显示一些块:
{% if username %}
<div class="container">
<div class="span6">Welcome!<strong> {{ username }}</strong></div>
{% endif %}
但是当我成功登录时,不会显示此块。我想redirect('/')
的问题。如果是这样,那我就不明白了:当我重定向到主页面时,那么用户已经注销了?
对于主页面,我使用下一个视图:
def index(request):
args = {}
args.update(csrf(request))
return render(request, 'index.html', args)
答案 0 :(得分:0)
使用user
上下文变量显示用户名。并且应该使用用户实例的is_authenticated()
方法来确定匿名用户:
{% if user.is_authenticated %}
Welcome! <strong>{{ user.username }}</strong>
{% endif %}