Существует официальный способ сделать это сейчас с момента закрытия Django ticket 6483 & выпуск Django 1.2.
Если у вас есть USE_L10N
набор для False
, что вы должны сделать, это указать DATE_INPUT_FORMATS
и DATETIME_INPUT_FORMATS
в вашем settings.py
. Вот настройки, которые я использую для этого, на основе преобразования по умолчанию:
#dd/mm/yyyy and dd/mm/yy date & datetime input field settings
DATE_INPUT_FORMATS = ('%d-%m-%Y', '%d/%m/%Y', '%d/%m/%y', '%d %b %Y',
'%d %b, %Y', '%d %b %Y', '%d %b, %Y', '%d %B, %Y',
'%d %B %Y')
DATETIME_INPUT_FORMATS = ('%d/%m/%Y %H:%M:%S', '%d/%m/%Y %H:%M', '%d/%m/%Y',
'%d/%m/%y %H:%M:%S', '%d/%m/%y %H:%M', '%d/%m/%y',
'%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M', '%Y-%m-%d')
Если у вас есть USE_L10N
набор для True
, то вам нужно будет использовать вместо FORMAT_MODULE_PATH
.
Например, мой LANGUAGE_CODE
установлен в en-au
, мой сайт называется golf
, и мой FORMAT_MODULE_PATH
установлен в golf.formats
, так что моя структура каталогов выглядит следующим образом:
golf/
settings.py
...
formats/
__init__.py
en/
__init__.py
formats.py
и DATE_INPUT_FORMATS
и DATETIME_INPUT_FORMATS
настройки в formats.py
вместо settings.py
.
Хорошо, это решение приятно, но как я могу использовать его с AdminDateWidget? Этот виджет является частью моего MultiWidget. – alekwisnia