Flask SQL炼金术通过不在连接上排序来排序?
这必须非常简单,但我被卡住了。我经常使用order_进行简单的查询,但由于某些原因,它无法用于连接,如下所示 我的问题是:Flask SQL炼金术通过不在连接上排序来排序?,flask,sqlalchemy,flask-sqlalchemy,Flask,Sqlalchemy,Flask Sqlalchemy,这必须非常简单,但我被卡住了。我经常使用order_进行简单的查询,但由于某些原因,它无法用于连接,如下所示 我的问题是: g.items = db.session.query(Executor).join("listed").\ order_by(Executor.executor_order.desc()).\ filter_by(Executor.will_id == g.profile.id).all()
g.items = db.session.query(Executor).join("listed").\
order_by(Executor.executor_order.desc()).\
filter_by(Executor.will_id == g.profile.id).all()
以下是来自上述查询的sql结果-由于某些原因,完全忽略按部分排序的顺序。\u:
SELECT executor.id AS executor_id, executor.will_id AS
executor_will_id, executor.listed_people_id AS
executor_listed_people_id, executor.executor_order AS
executor_executor_order FROM executor WHERE executor.will_id = :will_id_1
我做错了什么?为什么它完全忽略了.order\u by,即使我把它放在filter\u by之前
这是executor模型-连接似乎可以工作(我需要再绕一圈来确保):
您的加入似乎也不起作用?您确定这是正确的查询吗?您的
Executor
模型是什么样子的?
class Executor(db.Model):
id = db.Column(db.Integer, primary_key = True)
will_id = db.Column(db.Integer(), db.ForeignKey('will.id', ondelete='CASCADE'))
listed_people_id = db.Column(db.Integer(), db.ForeignKey('listed_people.id', ondelete='CASCADE'))
executor_order = db.Column(db.Integer(), nullable=True)
#relationship - so I can call Executor.listed_people for a list.
listed_people = db.relationship('ListedPeople', backref='executor')