我在 Safari 中的 Django 登录表单遇到问题,该表单在 Chrome 和 IE 中都成功运行。
在 Chrome/IE 中使用时,表单会正确返回用户名/密码(在需要时),当输入正确的用户名/密码时,用户会登录并重定向到 {{next}}。
在 safari 下,用户名/密码错误也可以正常工作,但是当输入有效的用户名和密码时,用户将被重定向回登录页面而不是 {{next}}。
这是我的登录视图:
def login_user(request):
next = request.GET['next']
state = ""
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)
return HttpResponseRedirect(next)
else:
state = "You're account is not active"
else:
state = "Your're username and/or password are incorrect."
return render_to_response('access/login.html', { 'state' : state }, context_instance=RequestContext(request))
以及登录模板中的表单:
<form action="" method="post">{% csrf_token %}
<label for="username">username:</label>
<input type="text" id="username" name="username"/>
<label for="password">password:</label>
<input type="password" name="password"/>
<input type="submit" value="Log In" />
<p><strong>{{ state }}</strong></p>
</form>