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 に答える