from flask_wtf import FlaskForm
from wtforms.fields.html5 import DateTimeLocalField
class MyForm(FlaskForm):
start_dt = DateTimeLocalField('Start Time')
以上这么写在页面提交表单时会报:Not a valid datetime value错误。
改成下面这样就不报错了:
class MyForm(FlaskForm):
start_dt = DateTimeLocalField('Start Time', format='%Y-%m-%dT%H:%M')
日期选择框中默认的格式是'%Y-%m-%d %H:%M %P',但如果将上面的format改为'%Y-%m-%d %H:%M %P‘还是会报错。
还有就是明明start_dt没有设置DataRequired, InputRequired,但如果不输入值的话还是会报Not a valid datetime value错误。
这是因为在WTForms的DateTimeLocalField里面强制要求要有一个format,无输入的情况也要检查format,不通过就报Not a valid datetime value错误。
解决办法:用Custom Field功能自己来定义一个DateTimeLocalField。
from wtforms.widgets.html5 import DateTimeLocalInput
class DateTimeLocalField(Field):
widget = DateTimeLocalInput()
def _value(self):
return self.data