1

いくつかの入力テキスト ボックスといくつかの選択ボックスを含むフォームがあります。テキストボックスで検証が完全に機能しています。選択ボックスのいずれかがデフォルトのままかどうかは気にしませんが、フォームを送信するたびに、「無効です: 値を入力してください...」という pylons エラーページに移動しますが、それをしたくありません起こる。

ここに私のバリデータ関数があります:

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 を使用すると、関数で提供されていないフォームのフィールドを空白/デフォルトのままにすると、渡すことができると思いました。聞いた、周波数、レベルという名前の選択ボックスがありますが、無視する必要があります。

ここで何か助けていただければ幸いです。

4

2 に答える 2

2

あなたのformencode.validators方法で:

  • not_empty=Falseフォームがフィールドを送信し、値が空の文字列である場合に使用します。パラメータ not_empty false は、あなたの言うとおりです。空は有効な値です。
  • フィールドが存在しない場合は、if_missing = Nonewhich を使用して結果を に設定しますNone
于 2012-11-05T21:30:50.700 に答える
0

次の行を追加する必要があると思います

filter_extra_fields = 真

于 2011-05-07T09:56:39.727 に答える