Настройка шаблона электронной почты django-otp

Я делаю двухфакторную аутентификацию (2FA) в своем приложении Django и использую пакет django-otp. Я хочу отправлять пользователям свои собственные письма. Я следовал официальной документации и добавил свои пользовательские настройки следующим образом:

# django-otp template
OTP_EMAIL_SUBJECT = _('Please confirm your login attempt')
OTP_EMAIL_BODY_TEMPLATE_PATH = 'account/email/login_confirmation_otp.html'

Вышеуказанные настройки работают, и письмо отправляется с типом содержимого text/plain, но мне нужен тип содержимого text/html.

Следующий код отправляет письмо:

def generate_challenge(self, extra_context=None):
    """
    Generates a random token and emails it to the user.

    :param extra_context: Additional context variables for rendering the
        email template.
    :type extra_context: dict

    """
    self.generate_token(valid_secs=settings.OTP_EMAIL_TOKEN_VALIDITY)

    context = {'token': self.token, **(extra_context or {})}
    if settings.OTP_EMAIL_BODY_TEMPLATE:
        body = Template(settings.OTP_EMAIL_BODY_TEMPLATE).render(Context(context))
    else:
        body = get_template(settings.OTP_EMAIL_BODY_TEMPLATE_PATH).render(context)

    send_mail(settings.OTP_EMAIL_SUBJECT,
              body,
              settings.OTP_EMAIL_SENDER,
              [self.email or self.user.email])

    message = "sent by email"

    return message

в django_otp/plugins/otp_email/models.py. Я хочу переопределить функцию generate_challenge() и добавить html_message в функцию send_email(), но не знаю, как это сделать?

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