pythondjangoformatdatefield

How can I set a DateField format in django from the model?


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 an invalid date format. It must be in YYYY-MM-DD format."]

For this model:

class ModelA(models.Model):

    date1 = models.DateField(null=True)
    date2 = models.DateField(null=True)

How can I set the DateField format to be %m/%d/%Y.

The option "input_formats" is not recognized.

Thank you!


Solution

  • 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