7

我已经在我的项目上成功设置了 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格式给出日期。

4

2 回答 2

3

我必须执行以下操作:

from django.conf import settings
from django.utils import formats 

correct_format = formats.get_format("SHORT_DATE_FORMAT", lang=settings.LANGUAGE_CODE)
于 2013-07-25T07:04:05.140 回答
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
于 2013-04-26T17:11:36.550 回答