2013-04-23 79 views
1

是否可以在控制器中使用web2py验证器(如IS_NOT_EMPTY())?他们似乎是进口的,但在控制器中,但是他们根本没用。调用它们时应使用哪些参数。控制器中的web2py验证器

回答

5

通常在定义模型时,通常将验证程序指定为DAL Field对象的requires属性。您还可以在控制器中指定Field的requires属性(通常在验证器或它们的参数是有条件的时候才会执行该操作,直到调用特定的控制器操作才会确定该属性)。当手动生成FORM对象,你也可以指定验证的形式佣工的requires属性,如INPUTSELECT

您也可以直接实例化和调用验证,虽然这是不常见的。为此,首先实例化验证器对象(如果验证器构造函数接受任何参数,则可能传递参数),然后通过传入一个要验证的值来调用该对象。验证器将返回一个2元组 - 第一个元素将是验证值(如果验证器进行转换,可能会进行转换),第二个元素将是None或错误消息(如果验证失败)。例如:

>>> IS_EMAIL()('bademail') 
('bademail', 'enter a valid email address') 
>>> IS_EMAIL()('[email protected]') 
('[email protected]', None)