Как явно указать язык электронной почты, который я хочу отправить? - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть пользовательская модель с полем preferred_language.Я хочу, чтобы все электронные письма (активация и сброс пароля) отправлялись на языке, указанном пользователем в профиле.

class CustomUser(AbstractBaseUser, PermissionsMixin):
    ...
    LANGUAGE_CHOICES = (
        (1, "English"),
        (2, "Русский")
    )

    preferred_language = models.PositiveSmallIntegerField(choices=LANGUAGE_CHOICES, default=2,
                                                          verbose_name=_("Preferred language"))

Я думал об установке пользовательского класса электронной почты, но не видел в классах navive djoser каких-либо моментов, в которых я мог бы явно установить язык итоговых электронных писем, несмотря на готовый к переводу стиль шаблонов электронной почты:

class ActivationEmail(BaseEmailMessage):
    template_name = 'email/activation.html'

    def get_context_data(self):
        context = super(ActivationEmail, self).get_context_data()

        user = context.get('user')
        context['uid'] = utils.encode_uid(user.pk)
        context['token'] = default_token_generator.make_token(user)
        context['url'] = settings.ACTIVATION_URL.format(**context)
        return context
...