У меня есть класс Score
со столбцом item_id
и несколькими полями, имеющими разные типы оценок (score1, score2, score3...), все из которых имеют целочисленные значения.
Мне нужно написать запрос, который берет список типов оценок и возвращает список с объектами, имеющими itemid
и сумму оценок всех типов оценок, упомянутых в списке рядом. Я пытаюсь сделать это с помощью гибридного метода, но не понимаю, как написать запрос.
model.py
class Score(db.Model):
__tablename__ = 'scores'
item_id = db.Column(db.Integer(), primary_key=True)
score1 = db.Column(db.Integer(), nullable=False)
score2 = db.Column(db.Integer(), nullable=False)
score3 = db.Column(db.Integer(), nullable=False)
score4 = db.Column(db.Integer(), nullable=False)
@hybrid_method
def total_score(self, fields):
ts = 0
for field in fields :
ts = ts + self[field]
return ts
controller.py
app.route('/scores', methods=['POST'])
def scores():
fields = ['score1', 'score2']
scores = Score.query.all().order_by('total_score')
Очевидно, что это не работает. Не могли бы вы помочь мне написать запрос, большое спасибо!
Вот как мне нужно получить окончательный результат:
[{'item_id' : 'x1', 'total_score' : y1},{'item_id' : 'x2', 'total_score' : y2},{'item_id' : 'x3', 'total_score' : y3}, ...]