SQLFORM.factory下拉列表不是必需的

时间:2013-09-06 12:17:59

标签: python web2py

我有一个使用SQLForm.factory设计的自定义表单。我在其中创建了一个下拉列表,如下所示:

Field('method',requires=IS_IN_SET([(1,'Method1'),(2,'Method2'),(3,'Method3')],zero='Select'))

当我没有从中选择任何选项时,它会将错误显示为“不允许值”。我不希望它成为必填字段。我尝试将 Field 类的 init 方法的必需参数设置为 False 但是它不工作。请告诉我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

requires=IS_EMPTY_OR(IS_IN_SET(
    [(1,'Method1'), (2,'Method2'), (3,'Method3')], zero='Select'))

注意,required的{​​{1}}参数在插入时由DAL强制执行,并导致失败时抛出异常。 Field()属性包括在requires提交期间处理的一个或多个验证程序的列表 - 违反验证程序会导致错误显示在表单上,​​而不是Python异常。