У меня есть проект django, который использует рабочий процесс, который отправляет электронные письма пользователям. Рабочие процессы слушают сервер rabbitmq и получают всю информацию об отправляемом электронном письме, переменных шаблона, адресе электронной почты для отправки и т. Д. Тело письма создается с помощью шаблонов django и render_to_string .
] Однако я хочу интернационализировать это. Некоторые из наших пользователей будут использовать веб-сайт на английском языке, некоторые на других языках. Они должны получать электронные письма на своем языке. Я попытался настроить рабочий процесс электронной почты (с помощью django.utils.translations.ugettext / ugettext_lazy), чтобы в теме и теле письма было _ (...) или {% blocktrans%} соответственно .
Однако, поскольку электронное письмо обрабатывается и отправляется в другом фоновом рабочем процессе, обычный процесс определения языка django , похоже, неприменим. Нет ни сеанса пользователя, ни файлов cookie, ни HTTP-заголовков для просмотра. При отправке сообщения на сервер rabbitmq я могу сохранить код языка
Но как мне указать django / gettext использовать этот язык в какой-то момент.
например, Моя функция, отправляющая электронную почту, может выглядеть следующим образом : Пользователи должны войти в систему, иначе они должны перенаправить на страницу входа. Я использовал для этого атрибут Authorize (). [Авторизовать] public ActionResult ...
Я использовал функцию jquery ajax для отправки формы. Пользователи должны войти в систему, иначе они должны перенаправить на страницу входа. Я использовал для этого атрибут Authorize ().
[Authorize]
public ActionResult Creat()
{
....
}
Если пользователь не вошел в систему, действие возвращает страницу входа в систему для функций jquery ajax, и она отображается в та же страница, но я хочу перенаправить пользователя на страницу входа. Есть ли какое-нибудь решение?