Изменение содержимого сообщений подтверждения почты ( 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

Я думаю также может быть способ попроще, в котором Вы просто можете переопределить перевод тех или иных токенов в шаблоне

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