我已经在我的项目上成功设置了L10N,并且我能够将日期转换为正确的格式。但现在我需要SHORT_DATE_FORMAT
作为我的模板或context_processor中的当前语言环境。
从django.conf.settings
获取它始终会为我提供默认值m/d/Y
。
区域设置当前设置为pt_BR
,因此格式应为d/m/Y
。
In [42]: settings.LANGUAGE_CODE
Out[42]: 'pt-br'
In [43]: settings.USE_L10N
Out[43]: True
In [44]: settings.SHORT_DATE_FORMAT
Out[44]: 'm/d/Y'
任何线索?
顺便说一句,我真正想要做的是:获取当前语言环境的格式,以便将其传递给bootstrap-datepicker插件。它目前正在使用m/d/Y
,django正在以d/m/Y
格式提供日期。
答案 0 :(得分:2)
我必须做以下事情:
from django.conf import settings
from django.utils import formats
correct_format = formats.get_format("SHORT_DATE_FORMAT", lang=settings.LANGUAGE_CODE)
答案 1 :(得分:0)
我可以使用babel执行此操作:
settings.py
:
MIDDLEWARE_CLASSES = (
...
'babeldjango.middleware.LocaleMiddleware',
...
)
context_processors.py
:
def global_context(request):
# Fixing the date format so bootstrap-datepicker understands.
js_frm = request.locale.date_formats['medium'].pattern
context = {
...
return context