如果它不存在,你需要写一个
template context processor.这里是你怎么做。
把这个地方:
def lang_context_processor(request):
return {'LANG': request.LANGUAGE_CODE}
from django.conf import global_settings
TEMPLATE_CONTEXT_PROCESSORS = global_settings.TEMPLATE_CONTEXT_PROCESSORS + (
'myproject.myapp.templatecontext.lang_context_processor',
)
(我建议添加到全局设置,因为这意味着当新的上下文处理器添加到默认值时,不会意外地中断事件。)
但是,它确实存在,作为内置模板上下文处理器django.core.context_processors.i18n.您可以访问它作为LANGUAGE_CODE。
纯粹为了兴趣,这里的功能的定义:
def i18n(request):
from django.utils import translation
context_extras = {}
context_extras['LANGUAGES'] = settings.LANGUAGES
context_extras['LANGUAGE_CODE'] = translation.get_language()
context_extras['LANGUAGE_BIDI'] = translation.get_language_bidi()
return context_extras
确保你使用RequestContext为你的模板渲染,而不是一个纯粹的上下文,否则它不会工作。