如何在Django中将默认日期格式AAAA-MM-DD更改为dd / mm / yyyy?

时间:2009-11-04 22:12:40

标签: python django date-format

我的语言环境dateformat是dd / mm / yyyy,Django正在要求AAAA-MM-DD

当用户输入时04/11/2009 Django提出:

_('Enter a valid date in YYYY-MM-DD format.')) 

我使用简单的html输入字段type =“text”,Not forms.DateField

谢谢:)

2 个答案:

答案 0 :(得分:5)

我假设您使用的是forms.DateField。如果是这样,您需要提供input_formats参数,如下所示:

class MyForm(forms.Form):
    start_date = forms.DateField(input_formats=['%d/%m/%Y'])

input_formats只列出您要接受的格式。

有关详细信息,请参阅http://docs.djangoproject.com/en/dev/ref/forms/fields/#datefield

答案 1 :(得分:1)

根据OP的帖子和评论,看起来这里有更多,而不仅仅是使用input_formats作为日期字段,尽管你会想要这样做。 “以YYYY-MM-DD格式输入有效日期”消息是一个例外,表单验证错误。如果您尝试使用不是“YYYY-MM-DD”的日期字符串保存模型实例,则会出现此异常。

我们需要在表单中使用DateField,然后使用已清理的数据(即datetime对象)实例化模型。看起来OP使用字符串而不是日期时间对象来实例化模型。

Django文档的这一部分讨论了准备DateField数据: https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-save