Изменение содержимого сообщений подтверждения почты ( Django Rest Framework, Djoser )
Вопрос краток, не требует отрывков кода, а заголовок вопроса и так описывает суть моей проблемы, но зная любовь товарещей модеров удалять мои вопросы, я уточню:
Я использую Djoser для аутентификации на своем DRF проекте, так-же использую подтверждение адреса email при аутентификации, но мне не нравится содержимое отправляемого сообщения, и я хотел бы узнать где это можно было-бы указать явно, с учетом того, что нужно использовать значения uid/token ?
В Djoser имеется конфигурация, которая отвечает за шаблоны email:
"EMAIL": ObjDict(
{
"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",
}
),
В которой указаны классы, описывающие шаблоны писем.
В каждом классе указаны файлы HTML с содержимым шаблона
https://github.com/sunscrapers/djoser/blob/master/djoser/conf.py#L66
class ActivationEmail(BaseEmailMessage):
template_name = "email/activation.html"
Вот ссылка на встроенный шаблон подтверждения:
https://github.com/sunscrapers/djoser/blob/master/djoser/templates/email/activation.html
Что нужно делать?
Вам необходимо переопределить класс ActivationEmail
где вы сможете указать свой путь до шаблона.
from djoser import email
class ActivationEmail(email.ActivationEmail):
template_name = 'email/activation.html'
После чего в настройках(settings.py) вы должны указать какой класс, описывает данный шаблон.
(в данном случае предполагается, что этот класс находится в core/email.py
)
DJOSER = {
'EMAIL': {
'activation': 'core.email.ActivationEmail'
}
}
Способ №2
Я думаю также может быть способ попроще, в котором Вы просто можете переопределить перевод тех или иных токенов в шаблоне