python - 向 web2py 表单添加额外的验证要求?

标签 python web2py

我知道如何在数据库级别向 SQLFORM 字段添加验证。然而,我找不到任何关于在个人表格层面上做到这一点的信息。理想情况下,我能够拥有一个现有的 SQLFORM 并说出如下内容:

form.field.requires = # some extra validator

有这样的事情吗?

最佳答案

首先,请注意,web2py 验证器永远不会处于数据库级别,即使指定为表定义的一部分 - 它们始终在表单级别强制执行。

SQLFORM 用于构建表单字段的 INPUT()SELECT()TEXTAREA() 帮助程序均采用“require” 属性,可以是单个验证器或验证器列表。创建表单时,SQLFORM 会自动将数据库表字段的验证器复制到关联的表单小部件。因此,最简单的方法是在创建 SQLFORM 之前为数据库表字段指定一个验证器:

def myform():
    db.mytable.myfield.requires = IS_IN_SET(['a', 'b', 'c'])
    form = SQLFORM(db.mytable).process()
    return dict(form=form)

在这种情况下,SQLFORM 会将验证器从 db.mytable.myfield 复制到表单中关联的“myfield”小部件。

您还可以在创建表单之后(但在处理表单之前)直接向小部件添加验证器:

form = SQLFORM(db.mytable)
form.custom.widget.myfield['requires'] = IS_IN_SET(['a', 'b', 'c'])
form.process()

访问字段小部件的另一种方法:

form.element('input[name=myfield]')['requires'] = IS_IN_SET(['a', 'b', 'c'])

关于python - 向 web2py 表单添加额外的验证要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11805620/

相关文章:

python - Django - 通过验证过滤范围内的日期

python - python表的最佳方法?

python - 一个表单可以有两个提交按钮吗?

python - 从 web2py 返回 JSON 列表

python - 类型错误 : unsupported operand type(s) python web2py

python - Web2Py 最小用户身份验证(仅限用户名)

python - 如何在Python中将NetCDF文件中的数据信息(YYYYMMDD)拆分为YYYY MM DD?

python - 使用 Python 对 CSV 文件中的列进行乘法/除法

python - IMDbPY get_top250_movies() 返回空列表

html - web2py - 如何将带有 {{block ...}} 的 html 插入到另一个 html 中?