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

后端 未结 3 997
一向
一向 2020-12-13 14:20

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         


        
相关标签:
3条回答
  • 2020-12-13 14:54

    input_formats is a forms.DateField option, not a model.DateField option. You have to set it in your form, not in your models.

    0 讨论(0)
  • 2020-12-13 14:58

    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))

    0 讨论(0)
  • 2020-12-13 15:01

    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
    
    0 讨论(0)
提交回复
热议问题