Я пытаюсь написать функцию confirm
, чтобы подтвердить регистрацию пользователем.User.DoesNotExist - значение исключения catch
Простая логика: пользователь регистрируется и получает электронное письмо. Во время регистрации я создаю хеш-значение, чтобы убедиться, что все пользователи имеют уникальное значение в моем db, и я отправляю электронное письмо пользователю с просьбой подтвердить регистрацию. И по ссылке подтверждения по электронной почте я помещаю это значение хеша в качестве идентификатора подтверждения для этой регистрации.
После того, как пользователь нажал, то эта функция будет называться:
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 :(
, даже если значение хэша в БД и совпадает с адресом идентификатора.
Почему это? Могу ли я прочитать точное сообщение об исключении DoesNotExist
?
Я много играл с моделью Пользователя и должен был восстановить старый db после удаления некоторых данных, сброса, сброса Юга и многих других вещей.
Может ли это быть причиной этой проблемы сейчас?
отличная помощь .. благодаря мужчине – doniyor