如何根据条件在 Flask 的一对多关系中使用 order_by
How to use order_by in one to many relationship in flask depending on a condition
我有两个模型问题和答案关系,我可以查询一个特定的问题然后打印它的答案,但我想知道如何按他们的列之一排序答案
我读了很多 SO 问题,但他们在创建 table 时定义了它,但我想按条件排序答案,votes
或 date
就像 Whosebug 上的这里,
class Question(db.Model):
sno = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
ans = db.relationship("Answers",backref="owner")
class Answers(db.Model):
ans_no = db.Column(db.Integer, primary_key=True)
answer = db.Column(db.String(3000))
votes = db.Column(db.Integer(),default=0)
date = db.Column(db.String(15))
ques_id = db.Column(db.Integer,db.ForeignKey("question.sno"))
我想要类似的东西
q1 = Question.query.filter_by(sno=1).first()
q1.ans // gives me [<Answers1>,<Answers3>] so on
如何根据投票或日期订购 q1.ans
。任何建议将不胜感激
如果您总是希望如此,只需将 order_by=date
添加到您的关系定义中即可。
否则,只需执行单独的查询:
sorted_anwers = Answer.query.where(with_parent(q1, Answer.owner)).order_by(Answer.votes.desc())
我有两个模型问题和答案关系,我可以查询一个特定的问题然后打印它的答案,但我想知道如何按他们的列之一排序答案
我读了很多 SO 问题,但他们在创建 table 时定义了它,但我想按条件排序答案,votes
或 date
就像 Whosebug 上的这里,
class Question(db.Model):
sno = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
ans = db.relationship("Answers",backref="owner")
class Answers(db.Model):
ans_no = db.Column(db.Integer, primary_key=True)
answer = db.Column(db.String(3000))
votes = db.Column(db.Integer(),default=0)
date = db.Column(db.String(15))
ques_id = db.Column(db.Integer,db.ForeignKey("question.sno"))
我想要类似的东西
q1 = Question.query.filter_by(sno=1).first()
q1.ans // gives me [<Answers1>,<Answers3>] so on
如何根据投票或日期订购 q1.ans
。任何建议将不胜感激
如果您总是希望如此,只需将 order_by=date
添加到您的关系定义中即可。
否则,只需执行单独的查询:
sorted_anwers = Answer.query.where(with_parent(q1, Answer.owner)).order_by(Answer.votes.desc())