Django form DateInput: change date format from mm/dd/yyy to dd/mm/yy

Viewed 471

I'm trying to change the default format of the date from mm/dd/YYYY to dd/mm/YYYY, but even adding a custom format (format="%d/%m%/%YYYY") the result doesn't change.

date = forms.DateField(initial=timezone.now(), widget=DateInput(attrs={'class': 'datepicker'}, format="%d/%m/%Y"), label="Data", error_messages=MY_DEFAULT_ERRORS)

To do so, I re-defined the DateInput class like this:

class DateInput(forms.DateInput):
    input_type = 'date'
1 Answers

You need to pass input_formats to the DateField form field to override the accepted date input formats.

date = forms.DateField(
    initial=timezone.now(),
    input_formats=["%d/%m/%Y"],
    widget=DateInput(attrs={'class': 'datepicker'}, format="%d/%m/%Y"),
    label="Data",
    error_messages=MY_DEFAULT_ERRORS
)
Related