首页 > 解决方案 > 使用 Flask 在 SQLAlchemy 中按布尔列排序

问题描述

我有这个模型:

class Task(db.Model):
    ...
    created = db.Column(db.DateTime, index=False, unique=False, nullable=False)
    active = db.Column(db.Boolean, index=False, unique=False, default=False)
    ...

在我的 Flask 端点中,我想先使用order_by日期created。然后再根据active状态Task。因此,如果active = True也应该对此进行排序。这可能吗?

我试过这个:

@app.route('/tasks', methods=['GET'])
def get_tasks():
    all_tasks = Task.query.order_by(Task.created.desc(), Task.active).all()
    return jsonify(tasks_schema.dump(all_tasks))

然而,这是行不通的。有任何想法吗?

标签: flasksqlalchemyflask-sqlalchemy

解决方案


也许不能回答您的问题,因为您想使用order_by,但我正在使用此代码按布尔值排序:

self.items.sort(key=lambda x: (-x.active, x.name))

推荐阅读