0

我的语言环境日期格式是 dd/mm/yyyy 并且 Django 正在请求 AAAA-MM-DD

当用户输入 04/11/2009 Django 引发:

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

我使用简单的 html 输入字段类型 =“文本”,而不是 forms.DateField

谢谢 :)

4

2 回答 2

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

于 2009-11-04T22:17:58.567 回答
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

于 2012-07-11T19:45:32.393 回答