Как заставить Pylons formencode validator игнорировать некоторые поля - PullRequest
1 голос
/ 28 апреля 2011

У меня есть форма, в которой есть несколько текстовых полей ввода, а также несколько полей выбора.У меня есть проверка работает отлично на текстовых полях.Мне все равно, если какое-либо из полей выбора оставлено по умолчанию или нет, но каждый раз, когда я отправляю форму, она переходит на страницу с ошибкой пилонов, говоря: «Неверно: Пожалуйста, введите значение для ...» Но я не хочу, чтобы этослучиться.

вот моя функция валидатора:

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 ]

2 голосов
/ 06 ноября 2012

В ваших formencode.validators методах:

  • Используйте not_empty=False, если ваша форма отправляет поля и значения являются пустыми строками.Параметр not_empty false - это то, как вы говорите: empty - допустимое значение.
  • Если поля не существуют, используйте if_missing = None, который установит ваш результат на None.
0 голосов
/ 07 мая 2011

Я думаю, вы должны добавить следующую строку

filter_extra_fields = True

...