如何返回相关记录的排序列表?

时间:2019-05-10 00:06:24

标签: python sqlalchemy

我有以下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')

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

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

1 个答案:

答案 0 :(得分:2)

我不确定给定辅助表的行为,但是您可以将order_by传递到relationship()中,例如:

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