我正在尝试编写一个confirm
函数来确认用户的注册。
简单的逻辑:用户注册并收到一封电子邮件。在注册期间,我创建哈希值以确保所有用户在我的数据库中都具有唯一值,然后我向用户发送一封电子邮件,要求确认注册。在电子邮件中的确认链接上,我将该哈希值作为此注册的确认 ID。
用户点击后,将调用此函数:
def confirm(request):
hash_id = request.GET.get('id')
try:
user = User.objects.get(uniq_hashed__exact=hash_id)
user.confirmed = 'yes'
email = user.email
user.save()
request.session['sess_id'] = hash_id
message = "activated!"
return render_to_response('danke.html',{'email':email},context_instance=RequestContext(request))
except User.DoesNotExist:
sorry = "Sorry, you dont exist in our db :("
return render_to_response('danke.html',{'danke':sorry},context_instance=RequestContext(request))
Sorry, you don't exist in our db :(
但是,即使哈希值在数据库中并且与 url id 匹配,我也总是得到。
为什么是这样?我可以阅读DoesNotExist
异常的确切消息吗?
我经常使用 User 模型,在删除一些数据、重置、重置 South 和许多其他事情后不得不恢复旧数据库。
这可能是现在这个问题的原因吗?