Поиск по источнику показывает, что DATETIME_FORMAT и т. Д. Используются только при вызове django.utils.formats.localize()
, и кажется, что он вызывается только при визуализации django.template.VariableNode
s.
Я не уверен, когда именно VariableNode
s используется в рендеринге шаблонов, но я предполагаю, что если у вас включен settings.USE_L10N
и у вас есть VariableNode
, он будет локализован.
localize
выглядит следующим образом:
def localize(value):
"""
Checks if value is a localizable type (date, number...) and returns it
formatted as a string using current locale format
"""
if settings.USE_L10N:
if isinstance(value, (decimal.Decimal, float, int)):
return number_format(value)
elif isinstance(value, datetime.datetime):
return date_format(value, 'DATETIME_FORMAT')
elif isinstance(value, datetime.date):
return date_format(value)
elif isinstance(value, datetime.time):
return time_format(value, 'TIME_FORMAT')
return value
Чтобы ответить на ваш вопрос, я бы, вероятно, написал быстрый контекстный процессор, который вызывал бы localize()
для всего в контексте.