Python 如何验证WTForms中的日期字段

Python 如何验证WTForms中的日期字段,python,flask,wtforms,Python,Flask,Wtforms,在我的flask应用程序中,我有一个WTForm,其中有两个日期选择器,分别表示“开始日期”和“结束日期”。验证“结束日期”不早于“开始日期”的最佳方法是什么 from flask_wtf import FlaskForm from wtforms.fields.html5 import DateField from wtforms import SubmitField class Form(FlaskForm): startdate_field = DateField('Start

在我的flask应用程序中,我有一个WTForm,其中有两个日期选择器,分别表示“开始日期”和“结束日期”。验证“结束日期”不早于“开始日期”的最佳方法是什么

from flask_wtf import FlaskForm
from wtforms.fields.html5 import DateField
from wtforms import SubmitField 

class Form(FlaskForm):
    startdate_field = DateField('Start Date', format='%Y-%m-%d')
    enddate_field = DateField('End Date', format='%Y-%m-%d')
    submit_field = SubmitField('Simulate')
我在这个主题上发现的唯一一件事就是这个验证器:

 wtforms_html5.DateRange

在这里找到:但它似乎是wtforms-html5的旧版本。

我找到了。在表单类中,可以定义一个方法
validate{fieldname}
,该方法验证相应的字段。此方法将
字段
表单
作为参数,因此我可以将startdate字段称为
form.startdate\u字段
。代码如下:

from flask_wtf import FlaskForm
from wtforms import SubmitField
from wtforms.validators import ValidationError
from wtforms.fields.html5 import DateField

class Form(FlaskForm):
    startdate_field = DateField('Start Date', format='%Y-%m-%d')
    enddate_field = DateField('End Date', format='%Y-%m-%d')
    submit_field = SubmitField('Next')

    def validate_enddate_field(form, field):
        if field.data < form.startdate_field.data:
            raise ValidationError("End date must not be earlier than start date.")
来自烧瓶\ wtf进口烧瓶表单
从wtforms导入SubmitField
从wtforms.validators导入ValidationError
从wtforms.fields.html5导入日期字段
课程表格(烧瓶表格):
startdate_field=DateField('开始日期',格式='%Y-%m-%d')
enddate\u field=DateField('End Date',格式=“%Y-%m-%d”)
submit\u field=SubmitField('Next')
def validate_enddate_字段(表格,字段):
如果field.data
有用吗?链接的答案对我不起作用。它引发了一个错误,因为它试图在填充字段之前比较这两个日期。