def form_valid(self, form): mail = form.cleaned_data['email'] ip = self.request.META['REMOTE_ADDR'] user = User.objects.get(email=mail) model = PasswordRecovery(user=user, ip_addr=self.request.META['REMOTE_ADDR']) model.save() args = 'secret=%s&mail=%s' % (model.secret, mail) update_uri = reverse('password.update') + '?' + args absolute_update_uri = self.request.build_absolute_uri(update_uri) mailhelpers.utils.send_mail(settings.FORGOT_PASSWORD_MAIL_SUBJECT, [mail], settings.FORGOT_PASSWORD_MAIL_FROM, 'mmm/password_recovery_mail.txt', 'mmm/password_recovery_mail.html', params={ 'recovery': model, 'update_uri': absolute_update_uri }) return super(RecoverPasswordView, self).form_valid(form)