Dj rest auth сброс пароля отправляет необработанный html в электронном письме
Я использую пакет dj rest auth и я переопределил письмо сброса пароля следующим образом
в settings.py :
REST_AUTH_SERIALIZERS = {
'JWT_TOKEN_CLAIMS_SERIALIZER': 'account.token.TokenObtainPairSerializer',
'USER_DETAILS_SERIALIZER': 'account_profile.api.userupdate.UserSerializer',
'PASSWORD_RESET_SERIALIZER': 'account_profile.api.customemail.CustomPasswordResetSerializer'}
и в customemail.py :
class CustomPasswordResetSerializer(PasswordResetSerializer):
def save(self):
request = self.context.get('request')
# Set some values to trigger the send_email method.
opts = {
'use_https': request.is_secure(),
#'from_email': 'noreply@mizbans.com',
'from_email': getattr(settings, 'DEFAULT_FROM_EMAIL'),
'request': request,
# here I have set my desired template to be used
# don't forget to add your templates directory in settings to be found
'email_template_name': 'password_reset_email.html'
}
opts.update(self.get_email_options())
self.reset_form.save(**opts)
and in email.py :
class MyPasswordResetSerializer(PasswordResetSerializer):
context={'domain':settings.WEBSITE_DOMAIN,'site_name':'mizban'}
def get_email_options(self) :
return {
'email_template_name': 'password_reset_email.html',
'context':'context'
}
Я поместил пример html кода в password_reset_email :
<html>
<body>
<p>welcome to{{domain}}</p>
<p>site {{site_name}}</p>
</body>
</html>
Работает, но отправляет html коды тагов в шаблоне письма!
Я решил эту ошибку, добавив следующее :
'html_email_template_name': 'password_reset_email.html'
to opts={} в методе сохранения