Добавить новый формат даты и времени в список форматов django - PullRequest
0 голосов
/ 29 января 2020

Я использую форматы Django в settings.py, чтобы отслеживать все форматы даты и времени, чтобы они были согласованными. В моем файле настроек есть различные форматы, например:

settings.py

USE_L10N = False # False = Use own formats below.
DATETIME_FORMAT = "d M Y, H:i"
DATE_FORMAT = "j M Y"
TIME_FORMAT = "H:i:s"
SHORT_DATETIME_FORMAT = "Y\u2011m\u2011d H:i:s"
SHORT_DATE_FORMAT = "Y\u2011m\u2011d"
MONTH_DAY_FORMAT = "n M"
YEAR_MONTH_FORMAT = "Y M"

Затем используйте их с:

from django.utils import formats, timnezone
formats.date_format(timezone.now(), 'SHORT_DATETIME_FORMAT')

A Несколько раз я хотел добавить другой формат, например, для использования даты и времени в имени файла требуется другое форматирование (в этом случае я мог бы выполнить подстановку, но это только пример):

FILE_DATETIME_FORMAT = "Y-m-d H.i.s"

Что касается вышеупомянутого: * Примечание 1: не работает, если помещено в settings.py

Тесно связано с этим вопросом , но этот вопрос просто определяет собственный формат на месте, это не то, что я ищу. Я хотел бы использовать систему форматирования django, так что есть один источник правды.

РЕЗЮМЕ ВОПРОСА: Как добавить новый формат даты и времени в список форматов django (а не какую-либо другую работу вокруг ).

1 Ответ

0 голосов
/ 29 января 2020

Думая об этом, я придумал этот «хак», надеюсь, есть лучший (официальный или рекомендуемый) способ сделать это:

settings.py:

new_formats = {'FILE_DATETIME_FORMAT': "Y-m-d H.i.s", }
# Union of new_formats with the existing ones
formats.FORMAT_SETTINGS = frozenset(formats.FORMAT_SETTINGS | new_formats.keys())
for setting, value in new_formats.items():
    globals()[setting] = value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...