我正在尝试在我的django应用程序中实现忘记密码功能。我给了一个单独忘记的密码。用户可以给他的电子邮件ID;如果该电子邮件已注册(在数据库中找到),则会获取该电子邮件的相应密码并将其发送到他的电子邮件ID。这正是我想要实现的。作为一个Django新手我坚持实施。这是我的 forgottenPassword.html
<form name="forgotPassword" method="POST" id="myFormid" action="http://10.1.0.90:8080/forgotPassword/">
<div style="float:center;width:100%;">
Enter your E-mail ID</label><br/> <input type="text" name="email" size="25" />
<input type="submit" value="Submit" />
</div>
</form >
我在views.py中的方法是
def forgotPassword(request):
if request.POST:
email=request.POST.get("email")
print email
user = UniversityDetails.objects.filter(email=email)
print user
if(not user):
print "No user"
return render_to_response("forgotPassword.html")
else:
???????????????
return render_to_response("passwordRecovery.html")
return render_to_response('forgotPassword.html')
在这里,我尝试实现的是传递在forgottenPassword.html中输入的电子邮件ID并将其保存在变量“email”中。之后,从数据库中获取带有该电子邮件的所有对象。并从中过滤密码。我想我放的部分????应填写查询以获取与该电子邮件ID对应的密码。有人可以帮我做这件事。
答案 0 :(得分:21)
有(按设计)无法来执行此操作。您无法获取用户的密码,因为它仅作为安全散列存储在数据库中,并且无法撤消该散列。
但是,Django确实在contrib.auth中提供了内置的重置密码实现 - 请参阅the documentation。
答案 1 :(得分:5)
也就是说,要回答您的问题,您已经提取了与该电子邮件匹配的UniversityDetails
查询。假设每个“用户”只有一封电子邮件,请使用get查询。
user = UniversityDetails.objects.get(email=email)
send_mail("Your PW", user.password, "admin@example.com", [email])