def post(self, request, uidb64=None, token=None, *arg, **kwargs):
form = self.get_form()
assert uidb64 is not None and token is not None
try:
uid = urlsafe_base64_decode(uidb64)
user = User._default_manager.get(pk=uid)
except (TypeError, ValueError, OverflowError, User.DoesNotExist):
user = None
if user is not None and default_token_generator.check_token(user, token):
if form.is_valid():
new_password = form.cleaned_data['new_password']
user.set_password(new_password)
user.save()
messages.success(request, _('Password reset successfully.'))
return self.form_valid(form)
else:
messages.error(request, _('We were not able to reset your password.'))
return self.form_invalid(form)
else:
messages.error(request, _('The reset password link is no longer valid.'))
return self.form_invalid(form)
评论列表
文章目录