Có một cách chính thức để thực hiện việc này ngay bây giờ kể từ khi đóng Django ticket 6483 & bản phát hành của Django 1.2.
Nếu bạn có USE_L10N
được đặt thành False
, những gì bạn cần làm là chỉ định DATE_INPUT_FORMATS
và DATETIME_INPUT_FORMATS
trong số settings.py
của mình. Dưới đây là các thiết lập tôi sử dụng cho điều này, dựa trên chuyển đổi giá trị mặc định:
#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')
Nếu bạn có USE_L10N
thiết lập để True
, sau đó bạn sẽ cần phải sử dụng FORMAT_MODULE_PATH
để thay thế.
Ví dụ, tôi LANGUAGE_CODE
được thiết lập để en-au
, trang web của tôi được gọi là golf
, và FORMAT_MODULE_PATH
của tôi được thiết lập để golf.formats
, vì vậy cấu trúc thư mục của tôi trông như thế này:
golf/
settings.py
...
formats/
__init__.py
en/
__init__.py
formats.py
và các thiết lập DATE_INPUT_FORMATS
và DATETIME_INPUT_FORMATS
là trong formats.py
thay vì settings.py
.
Ok, giải pháp này là tốt đẹp, nhưng làm thế nào tôi có thể sử dụng nó với AdminDateWidget? Widget này là một phần của MultiWidget của tôi. – alekwisnia