Как изменить стандартный адрес электронной почты для сброса пароля в djoser

Я хочу изменить шаблон электронной почты по умолчанию в djoser для отправки письма сброса пароля, я видел один ответ в stackoverflow для изменения почты активации, но я не знаю, как использовать это для письма сброса пароля

код для изменения email по умолчанию для активации: base/reset_email.py

from djoser import email

class ActivationEmail(email.ActivationEmail):
     template_name = 'base/resetPasswordMail.html'

settings.py

DJOSER = {

   'EMAIL': {
   'activation': 'base.reset_email.ActivationEmail'
    },
}

как заменить этот код для функциональности сброса пароля

Конфигурации электронной почты по умолчанию djoser определяются как:

'EMAIL': {
    'activation': 'djoser.email.ActivationEmail',
    'confirmation': 'djoser.email.ConfirmationEmail',
    'password_reset': 'djoser.email.PasswordResetEmail',
    'password_changed_confirmation': 'djoser.email.PasswordChangedConfirmationEmail',
    'username_changed_confirmation': 'djoser.email.UsernameChangedConfirmationEmail',
    'username_reset': 'djoser.email.UsernameResetEmail',
}

Вы хотите изменить вид сброса пароля, поэтому вам нужно сделать:

DJOSER = {

   'EMAIL': {
   'password_reset': 'appName.viewFileName.PasswordResetEmail'
    },
}

В вашем представлении вы можете определить класс PasswordResetEmail. Следующий код взят из djoser repository:

class PasswordResetEmail(BaseEmailMessage):
    template_name = "email/password_reset.html"

    def get_context_data(self):
        # PasswordResetEmail can be deleted
        context = super().get_context_data()

        user = context.get("user")
        context["uid"] = utils.encode_uid(user.pk)
        context["token"] = default_token_generator.make_token(user)
        context["url"] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
        return context

Вы можете настроить этот класс в соответствии с вашими целями.

Вернуться на верх