type="datetime-local" 的 input 如何通过 django form.is_valid() 校验

forms.py:

select_time = forms.DateTimeField(
    label='时间',
    input_formats=['%m/%d/%YT%H:%M'], 
    widget=forms.DateTimeInput(attrs={
        'class': 'weui-input', 
        'type': 'datetime-local', 
        'emptyTips': '请选择时间'
    })
)

上面这个表单,传递的时间格式是 2017-05-25T23:10,无法通过 form.is_valid() 校验,请问如何处理呢?

阅读 5.4k
3 个回答

传入的数据是 2017-05-25T23:10,而你的 input_formats=['%m/%d/%YT%H:%M'],也就是说 input_formats 写错了,正确的应该是 input_formats=['%Y-%m-%dT%H:%M']

你的 form 里定义的格式是 %m/%d/%YT%H:%M 但是你传的却是 2017-05-25T23:10 当然无法通过校验啦,需要修改 form 里的格式定义。

按 strftime(format) 方法,你要的input_formats格式應是 %Y-%M-%D/T%H:%M
關於strftime(format) 方法,見文檔8.1.8的第一表格,該格式是從C語言來的,挺通用的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题