web2py SQLFORM.grid() 获取进程上的字段值

web2py SQLFORM.grid () get field values on process

在我的 edit/add 页面上 SQLFORM.grid 我想获取进程中某些字段的值。如果此值与另一个字段 (userid) 组合已经存在,则必须通知用户。

有什么建议吗?

您可以简单地为其中一个字段定义验证器,这样当另一个字段也重复时它就不允许重复,然后让标准表单验证过程处理所有事情:

db.define_table('mytable',
    Field('userid', 'reference auth_user'),
    Field('otherfield',
          requires=IS_NOT_IN_DB(db(db.mytable.userid == request.vars.userid),
                                'mytable.otherfield')))

每当提交表单时,如果 "otherfield" 的值在 "userid" 的记录集中重复,则 IS_NOT_IN_DB 验证器将 return 出错重复。