在render()上,Django如何知道要选择哪种语言?

时间:2015-07-06 17:27:20

标签: python django django-templates django-i18n

我很好奇。 Django运行以下行:

email_body = get_template("applicant/email_with_token.txt").render(Context())

它从基于类的视图的form_valid()运行它。基于常规python字典创建新上下文。没有传递来自视图,用户,会话等的参数......在模板内部有{% load i18n %}和一堆上下文/变量。

然而,Django识别当前会话的语言并应用适当的翻译。

那么,它从哪里知道会话语言?

1 个答案:

答案 0 :(得分:0)

" ...决定在当前线程上下文中安装的翻译对象" (source)

简单,语言是线程范围的,因为一个线程服务一个请求,请求知道语言。