def forgot_step2(request, uidb64, token):
if request.user.is_authenticated():
return redirect(_login_redirect_url(request))
bytes_uid = urlsafe_base64_decode(uidb64)
try:
uid = int(bytes_uid)
except ValueError:
raise SuspiciousOperation('forgot_step2 received invalid base64 user ID: {}'.format(
bytes_uid))
user = get_object_or_404(models.User, pk=uid)
if not forgot_token_generator.check_token(user, token):
raise Http404('token invalid')
form = forms.ForgotPasswordSetForm(user=user)
if request.method == 'POST':
form = forms.ForgotPasswordSetForm(request.POST, user=user)
if form.is_valid():
user.set_password(form.cleaned_data['password'])
user.save()
messages.success(
request, _('Your password has been reset, '
'and you have been logged in.'))
return _log_user_in(request, user)
return render(
request, 'accounts/forgot/step2.html', {'form': form, 'user': user})
评论列表
文章目录