是否可以在WTForms中的日期时间字段上进行验证,将其与另一个日期时间进行比较?
我有表格
class EventEdit(FlaskForm):
timeIn = DateTimeField('Time In', validators=[DataRequired()])
timeOut = DateTimeField('Time Out', validators=[DataRequired()])
reason = RadioField('Reason', choices=[
('Incident','Incident'),
('Gym','Gym'),
('Meeting','Meeting'),
('Other','Other')])
comment = StringField('Additional Comments')
submit = SubmitField('Save Changes')
我需要确保输入timeOut时它大于时间。
此外,我还没有能够将timeOut字段设置为可选。
提前致谢。
你需要在你的课堂上覆盖validate
函数。但请务必先调用Form.validate(self)
,因为仍然需要验证各个字段。
class EventEdit(FlaskForm):
timeIn = DateTimeField('Time In', validators=[DataRequired()])
timeOut = DateTimeField('Time Out', validators=[DataRequired()])
reason = RadioField('Reason', choices=[
('Incident','Incident'),
('Gym','Gym'),
('Meeting','Meeting'),
('Other','Other')])
comment = StringField('Additional Comments')
submit = SubmitField('Save Changes')
def validate(self):
if not Form.validate(self):
return False
if self.timeIn.data < self.timeOut.data:
return False
else:
return True
我最终这样做,所以我可以在多个领域进行验证
def validate_timeOut(self, timeOut):
if self.timeIn.data > self.timeOut.data:
self.timeOut.errors.append('Time must be after Time In')
return False
else:
return True
def validate_comment(self, comment):
if len(self.comment.data) > 120:
self.comment.errors.append('Comment is too long!')
return False
else:
return True