Ответ 1
Небрежно, я считаю, что вы можете использовать помеченный столбец как выражение:
foobar = Foo.bar.label("foobar")
session.query(foobar).filter(foobar > 10).all()
Я знаю, что я могу использовать метод меток для псевдонима, но я не могу понять, как использовать помеченный элемент позже в запросе - что-то вроде следующего:
session.query(Foo.bar.label("foobar")).filter(foobar > 10).all()
Конечно, это не работает, поскольку нет переменной, называемой foobar. Как это можно сделать?
(Более упрощенный пример был просто для легкого понимания...)
Небрежно, я считаю, что вы можете использовать помеченный столбец как выражение:
foobar = Foo.bar.label("foobar")
session.query(foobar).filter(foobar > 10).all()
Просто поставьте foobar в кавычки. Он будет работать для order_by
следующим образом:
session.query(Foo.bar.label("foobar")).order_by('foobar').all()
Для фильтра вы можете использовать исходные условия sql:
session.query(Foo.bar.label("foobar")).filter("foobar > 10").all()