class HistoryForm(flask_wtf.Form): start = wtforms.DateField('Start', validators=[validators.DataRequired()], widget=admin_form.DatePickerWidget()) one_day = wtforms.BooleanField('One-day event') end = wtforms.DateField('End', validators=[validators.Optional()], widget=admin_form.DatePickerWidget()) content = wtforms.TextAreaField('Content', validators=[validators.DataRequired()]) @staticmethod def validate_end(form, field): if not form.one_day.data: try: if form.start.data > field.data: raise validators.ValidationError('Start date should be ' 'earlier than end date') except Exception: raise validators.ValidationError('Incorrect date format')
def convert_date(self, field_args, **extra): field_args['widget'] = form.DatePickerWidget() return fields.DateField(**field_args)
def handle_date(self, model, field, **kwargs): kwargs['widget'] = form.DatePickerWidget() return field.name, fields.DateField(**kwargs)