控制器中的web2py验证器

时间:2013-04-23 09:36:44

标签: validation web2py

是否可以在控制器中使用像IS_NOT_EMPTY()这样的web2py验证器?它们似乎是导入但在控制器中,但它们根本没用。调用它们时我应该使用哪些参数。

1 个答案:

答案 0 :(得分:5)

验证器通常被指定为DAL Field对象的requires属性,通常在定义模型时。您还可以在控制器中指定Field的requires属性(这通常在验证器或其参数是有条件的情况下完成,并且在调用特定的控制器操作之前不会确定)。手动生成FORM对象时,您还可以将验证程序分配给表单帮助程序的requires属性,例如INPUTSELECT等。

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

>>> IS_EMAIL()('bademail')
('bademail', 'enter a valid email address')
>>> IS_EMAIL()('goodemail@email.com')
('goodemail@email.com', None)