这必须非常简单,但我被困住了。我使用order_by进行简单的查询,但出于某种原因,它不会在连接上工作,如下所示。
这是我的问题:
g.items = db.session.query(Executor).join("listed").\
order_by(Executor.executor_order.desc()).\
filter_by(Executor.will_id == g.profile.id).all()
以下是上述查询的sql结果 - 由于某种原因完全忽略了order_by部分:
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_by,即使我把它放在filter_by之前?
这是执行者模型 - 连接似乎有用(我需要更多地围绕它来确保):
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')