peeweeでWhere-clauseを動的に作成したいと思います。私は表現を使う必要があることを学んだが、これを動かすことはできない。ここに私のコード:peewee式を拡張すると 'Expression'オブジェクトが反復可能ではありません
clauses = [
(Docs.language_frst == 0),
(Docs.body_len <= max_body_len),
(Docs.body_len >= min_body_len)
]
if len(aValid_ids_used):
clauses.extend((Docs.id.not_in(aValid_ids_used)))
docids = Docs.select(Docs.id).where(reduce(operator.and_, clauses))
限り、aValid_ids_usedが空である限り、コードは正常に動作します。 aValid_ids_usedはもはや空にされていないと私は拡張する条項を求めていたら、私はエラーを取得する:
Traceback (most recent call last): File "xyz.py", line 170, in <module>
clauses.extend((Docs.id.not_in(aValid_ids_used)))
TypeError: 'Expression' object is not iterable