如何在Django中将默认日期格式从AAAA-MM-DD更改为dd/mm/yyyy?
我的地区日期格式是日/月/年(dd/mm/yyyy),但Django需要的是年-月-日(AAAA-MM-DD)格式。
当用户输入04/11/2009时,Django会报错:
_('Enter a valid date in YYYY-MM-DD format.'))
我使用的是简单的HTML输入框,类型是"text",而不是forms.DateField。
谢谢 :)
2 个回答
1
根据提问者的帖子和评论,似乎这里的问题不仅仅是使用输入格式来处理日期字段,虽然你确实需要这样做。信息“请输入有效的日期,格式为YYYY-MM-DD”是一个异常提示,而不是表单验证错误。如果你尝试用一个不是'YYYY-MM-DD'格式的日期字符串来保存模型实例,就会出现这个异常。
你需要在表单中使用一个日期字段(DateField),然后用清理过的数据来创建模型实例,这个数据是一个日期时间对象(datetime object)。看起来提问者是用一个字符串来创建模型,而不是用日期时间对象。
这部分内容在Django文档中讨论了如何准备DateField数据:https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs#what-happens-when-you-save
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。