これまで、複数項目を選択してORで検索項目に使うとき
func = SelectMultipleField('Function', choices=[('exonic', 'exonic'), ('splicing', 'splicing'),・・・・ if form.func.data: exome = exome.filter(Exome_sub.Func_wgEncodeGencodeCompV19.in_(form.func.data))
このようにSelectMultipleFieldを使っていたのだが、使い勝手が悪く、見た目もぱっとしないので、チェックボックスを並べて使う方法を検討した。
fnc1 = BooleanField('exonic') fnc2 = BooleanField('splicing') ........ ........ fnc = [] if form.fnc1.data: fnc.append("exonic") if form.fnc2.data: fnc.append("splicing") ....... ....... if fnc: exome = exome.filter(Exome_sub.Func_wgEncodeGencodeCompV19.in_(fnc))
こんな感じで同等の機能になる。
これを昨日のアコーディオンと併用するとドロップダウンリスト風に項目を展開して、複数項目を選択できるため、ひと目で何が選ばれているかがわかってよろしい。