1

コントローラで IS_NOT_EMPTY() のような web2py バリデータを使用することは可能ですか? それらはコントローラーにインポートされているようですが、まったく役に立ちません。それらを呼び出すときにどのパラメーターを使用する必要がありますか。

4

1 に答える 1

5

バリデーターは通常requires、モデルが定義されるときに、DAL フィールド オブジェクトの属性として指定されます。コントローラーで Fieldの属性を指定することもできますrequires(これは通常、バリデーターまたはその引数が条件付きで、特定のコントローラー アクションが呼び出されるまで決定されない場合に行われます)。オブジェクトを手動で生成する場合、、 などのフォーム ヘルパーFORMの属性にバリデータを割り当てることもできます。requiresINPUTSELECT

あまり一般的ではありませんが、バリデーターを直接インスタンス化して呼び出すこともできます。これを行うには、最初にバリデーター オブジェクトをインスタンス化し (バリデーター コンストラクターが引数を取る場合は引数を渡す可能性があります)、次に検証する単一の値を渡してオブジェクトを呼び出します。バリデーターは 2 つのタプルを返します。最初の要素は検証済みの値 (バリデーターが変換を行う場合は変換される可能性があります) になり、2 番目の要素はNoneまたは エラー メッセージ (検証が失敗した場合) になります。例えば:

>>> IS_EMAIL()('bademail')
('bademail', 'enter a valid email address')
>>> IS_EMAIL()('goodemail@email.com')
('goodemail@email.com', None)
于 2013-04-23T13:05:08.047 に答える