如何在模型中设置django中的DateField格式?

时间:2015-06-18 09:31:11

标签: python django format datefield

我正在创建一个django应用程序,我遇到了下一个问题:当我想设置日期时会显示此错误:

ValidationError [u"'12/06/2012' value has an invalid date format. It must be in YYYY-MM-DD format."]

对于这个模型:

class ModelA(models.Model):

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

如何将DateField格式设置为%m/%d/%Y

无法识别选项"input_formats"

谢谢!

3 个答案:

答案 0 :(得分:17)

input_formatsforms.DateField option,而不是model.DateField选项。您必须在表单中进行设置,而不是在模型中。

答案 1 :(得分:14)

正如@bruno在答案中提到的那样,input_formats是一个表单字段,但它可用于控制从模型中保存的日期格式。

settings.py设置DATE_INPUT_FORMATS,如下所示:

DATE_INPUT_FORMATS = ['%d-%m-%Y']

在您的表单中,您可以执行以下操作:

class ClientDetailsForm(ModelForm):
    date_of_birth = DateField(input_formats=settings.DATE_INPUT_FORMATS)
    class Meta:
       model = ModelA

答案 2 :(得分:1)

您还可以使用LANGUAGE_CODE为本地人获取正确的日期格式。 LANGUAGE_CODE ='en-GB' 然后在DATE_INPUT_FORMATS = ['%d-%m-%Y', '%Y-%m-%d']中插入settings.py,可以在需要时随时调用。

date_birth = forms.DateField(label='Date of birth', widget=forms.SelectDateWidget(years=YEAR_CHOICES, input_formats= DATE_INPUT_FORMATS))