gpt4 book ai didi

django - 电子邮件未在 Celery 任务中翻译

转载 作者:行者123 更新时间:2023-12-02 02:22:29 25 4
gpt4 key购买 nike

我有一个异步发送电子邮件的 celery 任务

from djcelery.common import respects_language

@task(ignore_result=True)
@respects_language
def async_send_activation_email(registration_profile):
registration_profile.send_activation_email()

以及发送激活邮件功能

from django.core import context_processors

def send_activation_email(self):

variables = {
'some_variable':'something',
}
context = context_processors.i18n(None) # Allows to easily get all the language information into context. None is passed as the request does not matter for this context_processor.


# Subject
# Email subject *must not* contain newlines
subject = render_to_string(
'user_manager/activation/email_subject.txt',
variables,
context
)
...

上下文包含正确的信息(在我的例子中,LANGUAGE = 'fr',以及其他语言选项)。这是正常的,因为它们是由 @respects_language 装饰器正确设置的。

但 render_to_string 无论如何都使用后备语言。

知道会发生什么吗?

最佳答案

尝试使用

from django.utils import translation
translation.activate('fr')

编辑

问题评论的解决方案:

检查您的语言环境路径,在 celery 中执行时它们可能会有所不同。

关于django - 电子邮件未在 Celery 任务中翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20269417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com