Формат виджета Django DateInput
Я пытаюсь изменить формат даты с mm/dd/yyyy на dd/mm/yyyy в виджете DateInput. Я пытаюсь изменить формат следующим образом.
class Meta:
model = Patient
fields = '__all__'
widgets = {
'date_of_birth': widgets.DateInput(
format='%d-%m-%Y',
attrs={'type': 'date', 'class': 'form-control'})
}
Я заметил, что если не включать атрибут 'type': 'date'
, то дата интерпретируется в правильном формате, но в этом случае виджет не отображается, а просто текстовое поле. Поэтому приходится писать дату вручную (включая /).
Я также попробовал изменить settings.py
следующим образом, что также не помогло.
LANGUAGE_CODE = 'en-GB'
TIME_ZONE = 'CET'
USE_L10N = True
USE_TZ = True
DATE_INPUT_FORMATS = ('%d/%m/%Y')
В settings.py установите DATE_INPUT_FORMATS следующим образом:
DATE_INPUT_FORMATS = ['%d/%m/%Y']
А в вашей ModelForm вы можете сделать что-то вроде следующего:
class ClientDetailsForm(ModelForm):
date_of_birth =
DateField(input_formats=settings.DATE_INPUT_FORMATS)
class Meta:
model = ModelA
имейте в виду, что форматы должны быть определены в forms.py, а не в models.py.
Проблема была связана с настройками моего компьютера. Язык был установлен на английский (США). Изменение языка на английский (Великобритания) устранило проблему.