i have model:
class puc(base): pucid = column(integer, primary_key=true) asset = column(tinyint) article = column(tinyint) more values ... more values ...
and need query dynamically (this way tried):
pucs = session.query(puc).filter(puc[unique_by_param] == 1).all()
the value of unique_by_param
come frontend. example of unique_by_param
is: {str}'asset'
, {str}'article'
, {str}'another_model_value'
what need way do. session.query(puc).filter(puc.asset == 1)
or session.query(puc).filter(puc.article == 1)
dynamically, first way tried.
the result using (puc[unique_by_param]
) typeerror: 'declarativemeta' object not subscriptable
there way have used before, isn't pretty way that, isn't pretty way that:
# accounting table, have around 250 columns #and special columns around 70 variables... #so isn't option o 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))
here's approach uses filter_by
, keyword argument unpacking:
keyword = {unique_by_param : 1} session.query(puc).filter_by(**keyword).all()
Comments
Post a Comment