我使用 SQLFORM.factory 创建了一个自定义表单。
提交此表单后,将进行回发,并涉及到我的控制器的 index 方法。
如果我在给定的行下面写来验证表格,它的计算结果为 False。
if searchform.process().accepted:#THIS CONDITION EVALUATES TO FALSE
但是,如果我用下面的给定行替换这一行,它的计算结果为 True。
if searchform.accepts(request):#THIS CONDITION EVALUATES TO TRUE
下面给定的条件也失败了。
if searchform.accepts(request,session):#THIS CONDITION EVALUATES TO FALSE
我不知道为什么会这样。我相信最好的条件应该是第一个。
下面更详细地给出了创建此表单的代码:
searchform=SQLFORM.factory(
Field('id', 'unicode',requires=empty_to_none),
Field('account','unicode',requires=empty_to_none),
Field('fromdate','unicode',requires=empty_to_none),
Field('todate','unicode',requires=empty_to_none),
Field('name','unicode',requires=empty_to_none),
Field('status','integer'),
Field('method',requires=IS_EMPTY_OR(IS_IN_SET(['Method1','Method2','Method3'], sort=True, zero='Select'))),
Field('type','unicode',requires=IS_EMPTY_OR(IS_IN_SET(['Type1','Type2',], sort=True, zero='Select'))),
Field('altname','unicode',requires=empty_to_none),
Field('group','unicode',requires=IS_EMPTY_OR(IS_IN_SET(['Group1','Group2',], sort=True, zero='Select'))),
Field('assignee','unicode',requires=empty_to_none),
submit_button = 'Search'
)
请帮我解决这个问题。