如何在django上获取当前语言环境的"short_date_format"?

Mar*_*ruz 6 django localization

我已经成功地在我的项目上设置了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'
Run Code Online (Sandbox Code Playgroud)

有线索吗?

顺便说一下,我真正想做的是:获取当前语言环境的格式,以便将其传递给bootstrap-datepicker插件.它目前正在使用,m/d/Y而django正在以d/m/Y格式提供日期.

Mar*_*ruz 0

我可以使用babel来做到这一点:

settings.py:

MIDDLEWARE_CLASSES = (
    ...
    'babeldjango.middleware.LocaleMiddleware',
    ...
)
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)