SQLFORM.factory を使用してカスタム フォームを作成しました。
このフォームが送信されると、ポストバックが発生し、コントローラーのインデックス メソッドになります。
フォームを検証するために特定の行の下に書き込むと、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'
)
この問題を解決するのを手伝ってください。