我正在创建一个网站,所以我完成了登录页面中的注册页,每个细节都是正确的,但这是显示请验证您的详细信息,我的意思是其他部分也我把在用户名和密码后打印语句相同的详细信息是打印时,我键入,但不访问登录。
views.py
def sign_in(request):
if request.method == "POST":
username=request.POST['username']
password=request.POST['password']
print(username,password)
user = authenticate(username=username,password=password)
if user is not None:
login(request,user)
messages.success(request,"you are logged successfully ")
return redirect("front_page")
else:
messages.error(request,"please verify your details")
return redirect("sign_in")
return render(request,"login.html")
def front_page(request):
return render(request,"frontpage.html")
urls.py
path('log_in',views.sign_in,name="sign_in"),
path('front_page',views.front_page,name="front_page"),
超文本标记语言
<div class="signup-form">
<form action="{% url 'sign_in' %}" method="POST">
{% csrf_token %}
<h2 class="text-center">Login</h2>
<p class="text-center">Please fill in this form to login your account!</p>
<hr>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<span class="fa fa-user"></span>
</span>
</div>
<input type="text" class="form-control" name="username" placeholder="Username" required="required">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-lock"></i>
</span>
</div>
<input type="password" class="form-control" name="password" placeholder="Password" required="required">
</div>
</div>
<div class="form-group d-flex justify-content-center">
<button type="submit" class="btn btn-primary btn-lg">Login</button>
</div>
<div class="text-center text-primary">Dont have a account? <a href="{% url 'register' %}">Create here </a></div>
</form>
</div>
我只想用用户名和密码登录,但它显示请验证您的详细信息,但所有的详细信息都是正确的。
有什么想法吗?
2条答案
按热度按时间rryofs0p1#
authenticate()
也需要request
做为参数,因此它应该是:注册用户的视图应如下所示:
s2j5cfk02#
你的初始代码有问题
这和我在文档中找到的代码很相似,但是那个代码是用来登录用户,而不是用来注册他们。
解决的办法,就是:
感谢Sunderam指出了我的错误,函数authenticate()* 确实 * 对密码进行了哈希处理,因此它将接受一个原始密码。