ZhangZhihui's Blog  

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

 

posted on 2020-05-19 22:06  ZhangZhihuiAAA  阅读(459)  评论(0编辑  收藏  举报