我的语言环境日期格式是 dd/mm/yyyy 并且 Django 正在请求 AAAA-MM-DD
当用户输入 04/11/2009 Django 引发:
_('Enter a valid date in YYYY-MM-DD format.'))
我使用简单的 html 输入字段类型 =“文本”,而不是 forms.DateField
谢谢 :)
我的语言环境日期格式是 dd/mm/yyyy 并且 Django 正在请求 AAAA-MM-DD
当用户输入 04/11/2009 Django 引发:
_('Enter a valid date in YYYY-MM-DD format.'))
我使用简单的 html 输入字段类型 =“文本”,而不是 forms.DateField
谢谢 :)
我假设您使用的是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。
根据 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