Форум сайта python.su
Доброго времени суток!
Переопределяю метод save для формы смены пароля PasswordResetForm, т.к. необходимо отправлять почту не через sendmail
class PasswordResetForm(DjangoPasswordResetForm): def save(self): super(PasswordResetForm, self).save() token_generator=default_token_generator, send_templated_mail( template_name='password_reset', from_email=settings.DEFAULT_FROM_EMAIL, recipient_list=[self.email], context={ 'username': self.user.username, 'token': token_generator.make_token(self.user), },)
class PasswordResetForm(forms.Form): error_messages = { 'unknown': _("That email address doesn't have an associated " "user account. Are you sure you've registered?"), 'unusable': _("The user account associated with this email " "address cannot reset the password."), } email = forms.EmailField(label=_("Email"), max_length=254) def clean_email(self): """ Validates that an active user exists with the given email address. """ UserModel = get_user_model() email = self.cleaned_data["email"] self.users_cache = UserModel._default_manager.filter(email__iexact=email) if not len(self.users_cache): raise forms.ValidationError(self.error_messages['unknown']) if not any(user.is_active for user in self.users_cache): # none of the filtered users are active raise forms.ValidationError(self.error_messages['unknown']) if any((user.password == UNUSABLE_PASSWORD) for user in self.users_cache): raise forms.ValidationError(self.error_messages['unusable']) return email [code][/code] def save(self, domain_override=None, subject_template_name='registration/password_reset_subject.txt', email_template_name='registration/password_reset_email.html', use_https=False, token_generator=default_token_generator, from_email=None, request=None): """ Generates a one-use only link for resetting password and sends to the user. """ from django.core.mail import send_mail [b]86 тут: for user in self.users_cache:[/b] if not domain_override: current_site = get_current_site(request) site_name = current_site.name domain = current_site.domain else: site_name = domain = domain_override c = { 'email': user.email, 'domain': domain, 'site_name': site_name, 'uid': int_to_base36(user.pk), 'user': user, 'token': token_generator.make_token(user), 'protocol': use_https and 'https' or 'http', } subject = loader.render_to_string(subject_template_name, c) # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) email = loader.render_to_string(email_template_name, c) send_mail(subject, email, from_email, [user.email])
Офлайн
А здесь точно запятая нужна?
token_generator=default_token_generator,
Офлайн
Запятую убрала, но суть дела не поменялась. Есть таже ошибка.
Офлайн