我正在尝试编写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))
但是,即使哈希值在db中并且与url id匹配,我也总是得到Sorry, you don't exist in our db :(
。
DoesNotExist
例外的确切消息吗?
我玩了很多用户模型,并且在删除一些数据后,必须恢复旧的数据库,重置,重置南方和许多其他事情。
这可能是现在出现这个问题的原因吗?
答案 0 :(得分:1)
更多信息肯定会有用(数据库架构,用户模型代码),但这会让你获得异常文本(类似于“用户匹配查询不存在。查找参数是{'uniq_hashed':'c9b8568a4c19e74b5bddd05bd71caac1'} “)。
try:
user = User.objects.get(uniq_hashed__exact=hash_id)
except User.DoesNotExist as exc:
message = str(exc)