【问题标题】:web2py - remove blank option from IS_IN_DB validatorweb2py - 从 IS_IN_DB 验证器中删除空白选项
【发布时间】:2012-10-18 13:16:40
【问题描述】:

在 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)

【问题讨论】:

  • 看起来你在问和回答你自己的问题,这很好,但你应该提交你的解决方案作为答案,然后接受它。

标签: option web2py validation


【解决方案1】:

您的问题不清楚,但如果您要问IS_IN_DB 中的zero 参数是否用于此目的,那就是。 web2py manual 表示IS_IN_DB 中的参数zeroIS_IN_SET 中的zero 类似

对于IS_IN_SET,手册指出:zero 参数是可选的,它确定默认选择的选项的文本,IS_IN_SET 验证器本身不接受该选项。如果您不想要“选择一个”选项,请设置zero=None

【讨论】:

    猜你喜欢
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2021-01-20
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2019-08-15
    相关资源
    最近更新 更多