在 web2py 中,假设我通过添加一个名为“agent_code”的字段来修改默认的 auth_user 表。此字段应包含另一个表中的值:
auth_table = db.define_table(
auth.settings.table_user_name,
Field('first_name', length=128, default=''),
...more fields here...,
Field('auth_age_cod', length=512,default=None))
auth_table.auth_age_cod.requires = \
IS_IN_DB(db, db.agea.agea_cod,
'%(agea_cod)s - %(agea_name)s',
error_message='Agent not in DB')
我希望用户能够在注册期间将自己标识为代理。
用户注册表单现在显示允许选择代理的下拉框,但在开始时包含一个空白选项。由于某些原因,这在我们的系统中是不可接受的。
在调查了验证器的源代码后,我发现 IS_IN_DB 验证器有一个名为“零”的参数。默认设置为 ''(空字符串)并在下拉列表中创建一个空白选项。
因此,要删除空白选项,请将验证器更改为:
IS_IN_DB(db, db.agea.agea_cod,
'%(agea_cod)s - %(agea_name)s',
error_message='Agent not in DB',
zero=None)