首页 > 解决方案 > 如何返回相关记录的排序列表?

问题描述

我有以下 SQLAlchemy 类:

class Survey(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    questions = db.relationship('Question', backref='survey', lazy='dynamic')

class Questions(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    survey_id = db.Column(db.Integer, db.ForeignKey('survey.id'))
    bank_id = db.Column(db.Integer, db.ForeignKey('bank.id'))

class Bank(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    order = db.Column(db.Integer, nullable=False)
    questions = db.relationship('Question', backref='bank', lazy='dynamic')

因此,调查和银行都有问题,问题的顺序取决于问题的母银行。

给定一个调查,我怎样才能得到一个按顺序字段升序排列的问题列表?我可以很容易地得到问题,如果有必要,我可以在那之后对它们进行排序,但我想知道是否有更直接的方法。

标签: pythonsqlalchemy

解决方案


我不确定给定辅助表的行为,但您可以传递order_byrelationship(),例如:

 questions = db.relationship('Question', order_by='asc(Question.bank.order)' ... )

推荐阅读