def forgotten_password(request, template="users/forgotten_password.html"): if request.method == "POST": form = ForgottenPasswordForm(request.POST) extra_context = {"form": form} if form.is_valid(): email = form.cleaned_data["email"] # getting user who has that e-mail address if User.objects.filter(email=email).__len__() > 0: site = Site.objects.get_current() user = User.objects.get(email=email) # changing the user's password password = Captcha.generate_random_text() user.set_password(password) user.save() # mailing the new password to the user send_mail( settings.EMAIL_SUBJECT_PREFIX + messages.FORGOTTEN_PASSWORD_SUBJECT, messages.FORGOTTEN_PASSWORD_BODY % (site.name, site.name, password), settings.EMAIL_INFO_ADDRESS_TR, [user.email], fail_silently=settings.EMAIL_FAIL_SILENCE, auth_user=settings.EMAIL_HOST_USER, auth_password=settings.EMAIL_HOST_PASSWORD, ) extra_context["status"] = True else: # can't find such a user extra_context["status"] = False extra_context["error"] = messages.FRG_CANNOT_FIND_EMAIL else: form = ForgottenPasswordForm() extra_context = {"form": form} return render_to_response(template, extra_context, context_instance=RequestContext(request))