Лучший способ создания нескольких операторов 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)

теперь перейдем к моему вопросу: Есть ли более элегантный (и более безопасный) способ?

Вернуться на верх