【问题标题】:python sqlalchemy dynamic order_bypython sqlalchemy 动态 order_by
【发布时间】:2014-01-03 21:02:28
【问题描述】:
如何根据变量动态设置方向顺序,例如在 asc 或 desc 中用于 sqlite db 的 sqlalchemy 查询?
伪代码如下:
sort_order = "asc"
sql_session.query(ResultsDBHistory).order_by(sort_order(ResultsDBHistory.postsize)).limit(max_items_shown)
如果我尝试这个,它不会接受字符串。
【问题讨论】:
标签:
python
sqlite
sqlalchemy
【解决方案1】:
您可以访问.asc() 或.desc() 方法作为ResultsDBHistory.postsize 上的属性:
order = 'asc'
column_sorted = getattr(ResultsDBHistory.postsize, order)()
sql_session.query(ResultsDBHistory).order_by(column_sorted).limit(max_items_shown)
因为列有 asc 和 desc 方法。