Весовые формы, проверяющие выпадающие значения
Я собираю форму, используя Flask & WTForms, однако, когда дело доходит до раскрывающихся списков, я хочу иметь опцию "пожалуйста, выберите" для каждого раскрывающегося списка, поскольку выбранные причины проверки должны быть ложными, например, значение еще не было выбран.
Нужно ли использовать проверку регулярного выражения или пользовательскую проверку для достижения этой цели? Если мне нужна пользовательская проверка, то как мне ее создать?
CAR_MAKES = [('-1', "Please select a vehicle make..."), (1, 'Honda'),
(2, 'Ford'), (3, 'BMW')]
dd_car_makes = SelectField('dd_car_makes', choices=CAR_MAKES,
validators=[DataRequired()])
2 ответа
Решение
Вы можете использовать пользовательский валидатор здесь. Ознакомьтесь с пользовательскими валидаторами в документации WTForms.
def your_validator(form, field):
if field.data == -1:
raise ValidationError('Please select a vehicle make...')
dd_car_makes = SelectField('dd_car_makes', choices=CAR_MAKES,
validators=[DataRequired(), your_validator])
Вам просто нужно указать опцию "Пожалуйста, выберите" неверное значение и использовать стандартные валидаторы:
SelectField('Car', coerce=int,
choices=[(0, 'Please Select...'), (1, 'Honda')],
validators=[DataRequired()])