kuroの覚え書き

96の個人的覚え書き

複数の検索ワードを選択肢から選んでOR検索

まず選択肢の設置

from wtforms import SelectMultipleField
    ex_func = SelectMultipleField('Exome function',choices=[('stopgain', 'stopgain'), (..........

という感じにSelectMultipleFieldを使う。

検索式の方はor_でなんとかなるかと思ったが実際はどうにもならず、かなりやり方の検索に時間を費やした。

結局、これだ、という情報には行き着かなかったのだが、自力で試行錯誤した結果、

    if form.ex_func.data:
            exome = exome.filter(Exome.ExonicFunc_wgEncodeGencodeCompV19.in_(form.ex_func.data))

とin_を使うといいことがわかった。
or_(...like(...),...like(...)....
と明示的につなげてorをした時と同じように機能することがわかった。


追記
likeではなく==でしか機能していない。
今回たまたま2つが同時に当てはまるような項目ではなかったので大丈夫だが。
likeでないとできない場合は困るな。