私はこのモデルがあります:SQLAlchemyで動的比較を行うことはできますか?
class PUC(Base):
pucId = Column(Integer, primary_key=True)
asset = Column(TINYINT)
article = Column(TINYINT)
more values ...
more values ...
をそして、私は(この方法では、私が試した)動的にクエリを実行する必要があります。
pucs = session.query(PUC).filter(PUC[unique_by_param] == 1).all()
unique_by_param
の値は、フロントエンドから来ます。 unique_by_param
の例は次のとおりです。{str}'asset'
、{str}'article'
、{str}'another_model_value'
私は本当に行う方法です必要なもの。私が試した最初の方法のように、 session.query(PUC).filter(PUC.asset == 1)
またはsession.query(PUC).filter(PUC.article == 1)
# this is a accounting table, so this have around 250 columns
#and this special columns be around 70 variables...
#So this isn't an option o do this.
if unique_by_param == 'asset':
q = (PUC.asset == 1)
elif unique_by_param == 'article':
q = (PUC.article)
elif ...more values:
pucs = session.query(PUC).filter(or_(*q))
:
使用して結果を(PUC[unique_by_param]
)があり、私が以前に使用している方法ですが、それを行うにはかなりの方法ではないですが、それを行うにはかなりの方法ではありませんTypeError: 'DeclarativeMeta' object is not subscriptable
ですここ
'PUC.asset'は' TINYINT'はなく、 'bool'タイプであれば、あなたは' PUC.asseを期待していますt == True'を行うには? –
はい、それはブールです。だから、もし私がこれをチェックすると、 'pucs'の値はまったく違う@ cricket_007 –
いいえ、あなたの列は' BOOLEAN'という値ではなく 'TINYINT'です。 –