Как переопределить метод save для формы смены пароля? - Python

Узнай цену своей работы

Формулировка задачи:

Задача: переопределить метод save для формы смены пароля (PasswordResetForm), т.к. нужно использовать другой отправщик писем. пишу так:
Листинг программы
  1. from django.contrib.auth.forms import PasswordResetForm as DjangoPasswordResetForm
  2. class PasswordResetForm(DjangoPasswordResetForm):
  3. def save(self):
  4. token_generator = default_token_generator
  5. UserModel = get_user_model()
  6. email = self.cleaned_data["email"]
  7. users_cache = UserModel._default_manager.filter(email__iexact=email)
  8. for user in users_cache:
  9. send_templated_mail(
  10. template_name='password_reset',
  11. from_email='from@example.com',
  12. recipient_list=[user.email],
  13. context={
  14. 'username': user.username,
  15. 'token': token_generator.make_token(user),
  16. },
  17. )
Правильно ли так получать пользователя:
Листинг программы
  1. UserModel = get_user_model()
  2. email = self.cleaned_data["email"]
  3. users_cache = UserModel._default_manager.filter(email__iexact=email)
и почему в самой форме у джанго они просто используют
Листинг программы
  1. for user in self.users_cache:
а сам self.users_cache определяется в другом методе. И даже так как у меня написано
Листинг программы
  1. email = self.cleaned_data["email"]
он не находит метода cleaned_data Помогите, пожалуйста, во всем этом разобраться.

Решение задачи: «Как переопределить метод save для формы смены пароля?»

textual
Листинг программы
  1. email = self.cleaned_data["email"]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы