匹配查询不存在 Django 中的错误 [英] matching query does not exist Error in Django

查看:29
本文介绍了匹配查询不存在 Django 中的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Django 中实现了密码恢复功能.使用我的方法,新密码将发送到输入的电子邮件 ID.当给定正确的电子邮件(数据库中存在的电子邮件 ID)时,它可以正常工作.但是当给出一个不在数据库中的电子邮件 ID 时,它给出了错误:
'DoesNotExist at/forgotPassword/UniversityDetails 匹配查询不存在.'

我该如何解决这个问题?

forgotPassword.html()

def forgotPassword(request):如果请求.POST:email=request.POST.get(电子邮件")用户 = UniversityDetails.objects.get(email=email)如果(不是用户):打印没有用户"return render_to_response("forgotPassword.html")别的:新密码 = 用户.密码send_mail('密码恢复', '您网站的密码是'+ newPassword, 'rv_nair@gmail.com',['rv_ks@gmail.com'],fail_silently=False)return render_to_response("passwordRecovery.html")return render_to_response('forgotPassword.html')

html

<div style="float:center;width:100%;color:#0000A0">输入您的电子邮件 ID</label><br/><输入类型=文本"名称=电子邮件"尺寸=25"/><输入类型=提交"值=提交"/>

</表单 >

解决方案

try:用户 = UniversityDetails.objects.get(email=email)除了 UniversityDetails.DoesNotExist:用户 = 无

我还看到您以明文形式存储密码(一个很大的安全禁忌!).考虑改用内置的身份验证系统.

I have implemented a password recovery functionality in django. With my method, the new password will be sent to the email id entered. It works fine when given the correct email (e-mail id which exists in the database). But when given an email id which is not in the database, it gives the error:
'DoesNotExist at /forgotPassword/ UniversityDetails matching query does not exist.'

How can I resolve this issue?

forgotPassword.html()

def forgotPassword(request):
    if request.POST:
        email=request.POST.get("email")
        user = UniversityDetails.objects.get(email=email)
        if(not user):
            print "No user"
            return render_to_response("forgotPassword.html")
        else:
            newPassword = user.password
            send_mail('Password Recovery', 'The password for your site is '+ newPassword, 'rv_nair@gmail.com',
    ['rv_ks@gmail.com'], fail_silently=False)   
            return render_to_response("passwordRecovery.html")
    return render_to_response('forgotPassword.html')

html

<form name="forgotPassword" method="POST" id="myFormid" action="http://10.1.0.90:8080/forgotPassword/">
<div style="float:center;width:100%;color:#0000A0">
 Enter your E-mail ID</label><br/> <input type="text" name="email" size="25" /> 
 <input type="submit" value="Submit" />
 </div> 

</form >

解决方案

try:
    user = UniversityDetails.objects.get(email=email)
except UniversityDetails.DoesNotExist:
    user = None

I also see you're storing your passwords in plaintext (a big security no-no!). Consider using the built-in auth system instead.

这篇关于匹配查询不存在 Django 中的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆