'Django DateInput widget format
I am trying to change the date format from mm/dd/yyyy to dd/mm/yyyy in a DateInput widget. I am trying to change the format the following way.
class Meta:
model = Patient
fields = '__all__'
widgets = {
'date_of_birth': widgets.DateInput(
format='%d-%m-%Y',
attrs={'type': 'date', 'class': 'form-control'})
}
I noticed that if I don't include the 'type': 'date' attribute the date is interpreted in the correct format, but in that case the widget isn't displayed but just a text-field. So you have to write the date manually (including /). With the DateInput widget that looks like this with dd and mm switched DateInput widget
I have also tried changing the settings.py the following way which also didn't help.
LANGUAGE_CODE = 'en-GB'
TIME_ZONE = 'CET'
USE_L10N = True
USE_TZ = True
DATE_INPUT_FORMATS = ('%d/%m/%Y')
Solution 1:[1]
In settings.py set DATE_INPUT_FORMATS as below:
DATE_INPUT_FORMATS = ['%d/%m/%Y']
And in your ModelForm you could do something like below:
class ClientDetailsForm(ModelForm):
date_of_birth =
DateField(input_formats=settings.DATE_INPUT_FORMATS)
class Meta:
model = ModelA
keep in mind, that formats must be defined in the forms.py and not in the models.py.
Solution 2:[2]
The issue was with my computer settings. I had the language set to English (US). Changing the language to English (UK) fixed the issue.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Amun_Re |
| Solution 2 |
