如何在Django中使用<input type =“datetime”/>和iOS Safari?

时间:2013-02-10 14:20:23

标签: html5 django-forms mobile-safari datetimepicker

我非常喜欢Safari iOS中特殊键盘的便利性。

但是,似乎以“2013年2月10日9:07”的格式输出日期时间。

Django表单不会解析这种格式。与django文档中一样,django不解析%b或%B,缩写或完整月份名称。

任何简单的解决方法都可以让django表单解析'2013年2月10日9:07'。

2 个答案:

答案 0 :(得分:1)

格式实际上是2013-02-10T09:07:00Z,它只是呈现为Feb 10, 2013, 9:07(或根据您的区域设置)。由于格式是标准的日期时间格式,我认为Django应该能够正确处理它。

答案 1 :(得分:0)

目前Django不支持HTML5 datetime或datetime-local输入使用的格式,因此您需要使用自定义格式模块手动添加它,例如:

(将示例中的'mysite'替换为项目名称)

FORMAT_MODULE_PATH = 'mysite.formats'
你在settings.py中的

DATETIME_INPUT_FORMATS = (
    '%Y-%m-%dT%H:%M:%SZ',
    '%Y-%m-%dT%H:%M:%S',
    '%Y-%m-%d %H:%M:%S',
    '%Y-%m-%d %H:%M:%S.%f',
    '%Y-%m-%d %H:%M',
    '%Y-%m-%d',
    '%Y/%m/%dT%H:%M:%S',
    '%Y/%m/%d %H:%M:%S',
    '%Y/%m/%d %H:%M:%S.%f',
    '%Y/%m/%d %H:%M',
    '%Y/%m/%d',
)
mysite/formats/en/formats.py

中的

确保也创建

mysite/formats/__init__.py
mysite/formats/en/__init__.py

并复制您使用的任何其他语言环境的en目录。