動的な列とその値を使用して動的にsqlalchemyクエリを生成/構築する必要があります。sqlalchemyの動的フィルタを構築するPython
例 - 私はSQLで "Convo"と呼ばれるテーブルを持っていますが、それには - UserID、ConvoID、ContactIDのような列があります。
私は、以下の基準に基づいて行を取得する必要があります。
criteria = (('UserID', 2), ('ConvoID', 1) ,('ContactID', 353))
私はこのために「Baked query」ロジックを使用しました。しかし、どのように私はこのクエリを正常に実行することができません。
以下はmyコードです。
criteria = (('UserID', 2), ('ConvoID', 1) ,('ContactID', 353))
baked_query = bakery(lambda session: session.query(tablename))
for key1 in condition:
baked_query += lambda q: q.filter(tablename.key1 == condition[key1])
result = baked_query(self.session).all()
私はエラーを取得しています -
AttributeError: type object 'Convo' has no attribute 'key1'
あなたはダイナミックキーと "シンプル" の平等をチェックし、filter_by方法を使用している場合、この
おそらく、 'tablename.key1'ではなく' getattr(tablename、key1) 'が必要です。 – univerio