我正在创建一个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"
。
谢谢!
答案 0 :(得分:17)
input_formats
是forms.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))