Как заставить Pylons formencode validator игнорировать некоторые поля
У меня есть форма, которая имеет несколько входных текстовых полей, а также несколько полей выбора. У меня есть проверка работает отлично на текстовых полях. Мне все равно, если какое-либо из полей выбора оставлено по умолчанию или нет, но каждый раз, когда я отправляю форму, она переходит на страницу с ошибкой пилонов, говоря: "Неверно: введите значение для..." Но я не хочу, чтобы бывает.
вот моя функция валидатора:
class Registration(formencode.Schema):
allow_extra_fields=True
first_name = formencode.validators.String(strip=True, not_empty=True)
last_name = formencode.validators.String(strip=True, not_empty=True)
address = formencode.validators.String(strip=True, not_empty=True)
phone = formencode.validators.PhoneNumber(strip=True, not_empty=True)
email = formencode.validators.Email(resolve_domain=True, not_empty=True)
messages = {
'tooLow': "You must be at least 18 in order to register for an event.",
'tooHigh': "You obviously are not that old. Please enter your actual age.",
}
age = formencode.validators.Int(min=18, max=999, not_empty=True, messages=messages)
Я думал, что с allow_extra_fields = True это позволило бы пропустить поля в форме, которые не предоставлены в функции, если оставить пустым / по умолчанию. У меня есть флажки с именем слышал, частота и уровень, которые следует игнорировать.
Любая помощь здесь будет принята с благодарностью.
2 ответа
На ваше formencode.validators
методы:
- использование
not_empty=False
если ваша форма отправляет поля и значения являются пустыми строками. Параметр not_empty false - это то, как вы говорите: empty - допустимое значение. - Если поля не существуют, используйте
if_missing = None
который установит ваш результат наNone
,
Я думаю, что вы должны добавить следующую строку к нему
filter_extra_fields = True