Лучший способ создания нескольких операторов sqlalchemy order_by из django REST
Я хочу использовать параметры строки запроса для установки нескольких вариантов заказа. Возьмем таблицу со следующими столбцами: id, user_id, amount, date, text
А упорядочивание должно быть списком dict типа [{"amount": "desc"}, {"date": "asc"} ]
в crud-файле:
def get_multi_by_userid(
db_session: Session, *, userid: int, skip=0, limit=1000, ordering
) -> List[Optional[transactions]]:
orderstring = ""
querystring = """db_session.query(transactions)
.filter(transactions.userid == userid )
{}
.offset(skip)
.limit(limit)
.all() """
for i in ordering:
orderstring += ".order_by(transactions.{}.{}())".format(list(i.keys())[0],i[list(i.keys())[0]])
querystring.format(orderstring)
return (eval(querystring), 200)
теперь перейдем к моему вопросу: Есть ли более элегантный (и более безопасный) способ?