Я хочу создать таблицу лидеров на основе flask. У меня есть модели пользователей и медалей, а также таблица отношений многие ко многим. Я хотел бы отобразить десять лучших пользователей с наибольшим количеством медалей, и я хочу знать, есть ли «нестабильный» способ задать этот вопрос. Соответствующий код выглядит следующим образом:
Модель пользователя:
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True)
medals = db.relationship('Medal', secondary=medals_users, backref='user')
Модель медали:
class Medal(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64))
Таблица отношений:
medals_users = db.Table('medals_users',
db.Column('user_id', db.Integer, db.ForeignKey('user.id'), nullable=False),
db.Column('medal_id', db.Integer, db.ForeignKey('medal.id'), nullable=False),
db.PrimaryKeyConstraint('user_id', 'medal_id'))
Я думал решение будет среди строк:
top = User.query.filter_by(User.medal.count()).order_by(User.medal.count()).limit(10).all()
Но, похоже, я потерялся, любая помощь будет оценена