Конструкция ORDER BY FIELD() в sqlalchemy реализуется с помощью func.
Что бы получить ORDER BY FIELD(status, ‘banned’, ‘canceled’, ‘deleted’) можно воспользоваться order_by(func.field(Order.status, *['banned', 'canceled', 'deleted']))
Простой пример
1 2 3 4 5 6 7 |
from sqlalchemy import func sorted_statuses = ['banned', 'canceled', 'deleted'] wrong_orders = Order.query.filter(Order.county.in_(['SVK', 'SVN'])).\ order_by(func.field(Order.status, *sorted_statuses)). \ all() |