Django 不记得经过身份验证的用户
Django doesn't remember authenticated user
我有一个简单的登录功能。
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)
使用 user
上下文变量显示用户名。并且应该使用用户实例的is_authenticated()
方法来确定来自匿名的登录用户:
{% if user.is_authenticated %}
Welcome! <strong>{{ user.username }}</strong>
{% endif %}
我有一个简单的登录功能。
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)
使用 user
上下文变量显示用户名。并且应该使用用户实例的is_authenticated()
方法来确定来自匿名的登录用户:
{% if user.is_authenticated %}
Welcome! <strong>{{ user.username }}</strong>
{% endif %}