Istnieje oficjalny sposób, aby zrobić to teraz, od czasu zamknięcia wersji Django 1.22.
Jeśli masz USE_L10N
zestaw do False
, co należy zrobić, to określić DATE_INPUT_FORMATS
i DATETIME_INPUT_FORMATS
w swoim settings.py
. Oto ustawienia używać do tego, oparte na konwersję wartości domyślne:
#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')
Jeśli masz USE_L10N
zestaw do True
, następnie trzeba będzie użyć FORMAT_MODULE_PATH
zamiast.
Na przykład, mój LANGUAGE_CODE
jest ustawiony na en-au
, moja strona nazywa golf
, a mój FORMAT_MODULE_PATH
jest ustawiony na golf.formats
, więc moja struktura katalogów wygląda następująco:
golf/
settings.py
...
formats/
__init__.py
en/
__init__.py
formats.py
i ustawienia DATE_INPUT_FORMATS
i DATETIME_INPUT_FORMATS
są w formats.py
zamiast settings.py
.
Ok, to rozwiązanie jest miłe, ale jak mogę go używać z AdminDateWidget? Ten widget jest częścią mojego MultiWidget. – alekwisnia