我有一个表单(2个字段),用户选择/输入日期&时间使用jQuery的DatePicker& TimePicker。出来的格式是:
01/05/2011
11:00 PM
表单不会提交,所以我认为与这些格式和DateField& TimeField我在我的表单类中使用。这是真的?如果是这样,这些输入需要采用什么格式?
谢谢!
答案 0 :(得分:3)
您可以通过查看Django源来阅读这些字段的验证代码。
查看django / forms / fields.py,阅读DateField和TimeField类上的to_python()方法。
在我看来,他们都支持多种输入类型:
我认为最后一个选项就是你想要的。检入django / conf / global_settings.py,您可以看到这些设置的默认值,其中包括大量strptime格式字符串。这是默认的DATE_INPUT_FORMATS:
'%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', # '2006-10-25', '10/25/2006', '10/25/06'
'%b %d %Y', '%b %d, %Y', # 'Oct 25 2006', 'Oct 25, 2006'
'%d %b %Y', '%d %b, %Y', # '25 Oct 2006', '25 Oct, 2006'
'%B %d %Y', '%B %d, %Y', # 'October 25 2006', 'October 25, 2006'
'%d %B %Y', '%d %B, %Y', # '25 October 2006', '25 October, 2006'
因此,任何这些方式格式化的日期字符串都应该有效(假设你的语言环境没有设置为古怪的 - 每个语言环境都有针对该字段的语言环境特定覆盖,你应该检查语言环境的locale子目录'正在努力)。
TIME_INPUT_FORMATS的逻辑类似,默认情况下为:
'%H:%M:%S', # '14:30:59'
'%H:%M', # '14:30'
所以我怀疑这是阻止你的表格工作的原因,因为你的时间是上午/下午。
您可以在settings.py中手动将TIME_INPUT_FORMATS设置为strptime格式字符串,该字符串将适用于您想要的内容,这可能类似于“%I:%M%p”(请注意,您不能只使用%r因为它看起来需要几秒钟)。您可能还想包含原始值,只是为了与其他东西(例如Django管理界面)兼容。
我不熟悉jQuery日期&时间选择器 - 也许你可以配置它们以Django已经支持的格式输出时间?
答案 1 :(得分:0)