背景: 付款服务在后台对付款结果执行ping操作时,将调用该视图-之后,我需要以正确的语言发送电子邮件以确认付款,依此类推。我可以从付款服务器的请求中获取语言代码,并希望将其与Django的i18n系统一起使用,以确定以哪种语言发送电子邮件。
因此,我需要在视图中设置django应用程序的语言。然后一次完成我的模板渲染和电子邮件发送。
设置request.session['django_language'] = lang仅在我测试时影响下一个视图。
request.session['django_language'] = lang
还有其他方法吗?
引用Django语言环境中间件(django.middleware.locale.LocaleMiddleware)中的部分:
django.middleware.locale.LocaleMiddleware
from django.utils import translation class LocaleMiddleware(object): """ This is a very simple middleware that parses a request and decides what translation object to install in the current thread context. This allows pages to be dynamically translated to the language the user desires (if the language is available, of course). """ def process_request(self, request): language = translation.get_language_from_request(request) translation.activate(language) request.LANGUAGE_CODE = translation.get_language()
该translation.activate(language)是重要的一点。