Как упорядочить запрос, чтобы вначале проходили все строки со столбцом, равным true? - PullRequest
0 голосов
/ 06 апреля 2019

Итак, у меня есть модель:

id = db.Column(db.Integer, primary_key=True) 
is_urgent = db.Column(db.Boolean, default=False)
creation_time = db.Column(db.DateTime, index=True, default=datetime.utcnow)

, и я хочу создать упорядоченный список по запросу, чтобы сначала выполнялись все срочные заказы, а затем все не срочные.И эти два набора также упорядочены по времени создания, поэтому первый порядок в списке запросов будет самым старым срочным заказом, а самый последний будет самым новым,

.сделано с чистой sqlalchemy?или я должен создать цикл for после более простого запроса?

1 Ответ

0 голосов
/ 06 апреля 2019

Результаты запроса можно упорядочить, используя метод order_by в вашем запросе. Это принимает несколько аргументов, и ваш запрос будет отсортирован по каждому из них по очереди. Метод desc в каждом столбце, указанном для order_by, можно использовать для управления направлением сортировки. Следующее должно работать для вас.

session.query(MyModel).order_by(MyModel.is_urgent.desc(), MyModel.creation_time)
...