Настройка шаблона электронной почты 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(), но не знаю, как это сделать?