sqlalchemy Evalulate Критерии, основанные на списке кортежей, поиск? - PullRequest
0 голосов
/ 15 сентября 2011

Я хочу применить некоторый тип правил доступа для механизма, для этого я планирую использовать список кортежей для указания правил для ограничений, как показано ниже
['|',('name','=','root'), ('role','=','admin')] с использованием постфиксных обозначений ...

Есть ли какой-либо механизм в Python, который может помочь мне преобразовать такой домен в SQL-запрос sqlalchemy, как

or_(User.name='root', User.role='admin')

1 Ответ

2 голосов
/ 15 сентября 2011

Вот начало одного:

Я собираюсь переписать ваше выражение в терминах префиксной нотации;оператор является первым, а другие значения следуют, так:

test_expression = ['|',('=','name','root'), ('=','role','admin')]

, но, возможно, вы могли бы добавить еще несколько специфических для оператора проверок для обработки операторов в других местах.используйте его, передайте сопоставленный класс, с которым вы хотите использовать запрос:

session.query(User).filter(build_query(User, test_expression))
...