Я не вижу код, который вы использовали, но вот что работает для меня с django rest auth.
создание настраиваемого сериализатора сброса пароля
from django.contrib.auth.forms import PasswordResetForm
from django.conf import settings
from django.utils.translation import gettext as _
from rest_framework import serializers
###### IMPORT YOUR USER MODEL ######
from .models import User
class PasswordResetSerializer(serializers.Serializer):
email = serializers.EmailField()
password_reset_form_class = PasswordResetForm
def validate_email(self, value):
self.reset_form = self.password_reset_form_class(data=self.initial_data)
if not self.reset_form.is_valid():
raise serializers.ValidationError(_('Error'))
###### FILTER YOUR USER MODEL ######
if not User.objects.filter(email=value).exists():
raise serializers.ValidationError(_('Invalid e-mail address'))
return value
def save(self):
request = self.context.get('request')
opts = {
'use_https': request.is_secure(),
'from_email': getattr(settings, 'DEFAULT_FROM_EMAIL'),
###### USE YOUR TEXT FILE ######
'email_template_name': 'account/email/password_reset_key.html',
'html_email_template_name': 'account/email/password_reset_key.html',
'request': request,
}
self.reset_form.save(**opts)
Затем получите шаблон электронной почты для сброса пароля как account/email/password_reset_key.html
Затем в настройках обновите ваш сериализатор сброса пароля, чтобы он указывал на настраиваемый сериализатор сброса пароля.
REST_AUTH_SERIALIZERS = {
'PASSWORD_RESET_SERIALIZER': '<path to >password_serializer.PasswordResetSerializer'
}
Это должно работать, если это не так t вам нужно будет предоставить больше контекста о том, как вы настраиваете этот конкретный поток сброса пароля, чтобы мы могли определить, почему он отправляет его в виде текста вместо html представления