I am creating a django application and I have the next problem: this error is shown when I want to set a date:
ValidationError [u\"\'12/06/2012\' value has a
input_formats
is a forms.DateField option, not a model.DateField
option. You have to set it in your form, not in your models.
You could also use the LANGUAGE_CODE to get the correct date formate for the local.
LANGUAGE_CODE ='en-GB'
Then have DATE_INPUT_FORMATS = ['%d-%m-%Y', '%Y-%m-%d']
in the settings.py
which can be called when needed at anytime.
date_birth = forms.DateField(label='Date of birth', widget=forms.SelectDateWidget(years=YEAR_CHOICES, input_formats= DATE_INPUT_FORMATS))
As @bruno as mentioned in his answer, input_formats
is a forms field, however it can be used to control the date format saved from the model.
In settings.py
set DATE_INPUT_FORMATS
as below:
DATE_INPUT_FORMATS = ['%d-%m-%Y']
And in your form you could do something like below:
class ClientDetailsForm(ModelForm):
date_of_birth = DateField(input_formats=settings.DATE_INPUT_FORMATS)
class Meta:
model = ModelA