我有一个登录表格。按下登录按钮后,帖子数据将发送到视图login_auth,该视图对用户数据进行身份验证并相应地重定向。但是,按登录按钮后,我没有被重定向到相应的页面。
views.py
def login_successful(request):
return render(request,"login_successful.html")
def login_invalid(request):
return render(request,"login_invalid.html")
def login(request):
return render(request,'login.html',c)
def loginauth(request):
username=request.POST.get("username",'')
password=request.POST.get("password",'')
user=auth.authenticate(username=username,password=password)
if user is not none:
user.login(request.user)
return redirect(login_successful)
else:
return redirect(login_invalid)
urls.py
urlpatterns = [
url(r'^registration/',views.registration),
url(r'^registration_successful/',views.registration_successful),
url(r'^home/',views.home),
url(r'^login/',views.login),
url(r'^login_successful/',views.login_successful),
url(r'^login_invalid/',views.login_invalid),
url(r'^login/auth',views.loginauth)
]
login.html
<html>
<form action="/login/auth" method="POST">{% csrf_token %}
Username :<input type="textbox" name="username" >
Password :<input type="password" name="password">
<input type="submit" value="Login">
</form>
</html>
您的登录网址格式缺少尾随$
。它应该是:
url(r'^login/$', views.login),
如果没有美元,/login/auth
则由匹配r'^login/
,因此请求由您的登录视图处理。
在不同的URL上处理表单有点不寻常。Django带有身份验证视图,包括登录视图。我建议您使用此方法,而不要自己编写。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句