Peewee, как установить операторы и логику запроса по переменной?

Я хочу динамически построить запрос с помощью peewee.

Пример запроса:

User.select()
    .where(
        (User.full_name=="test") | 
        (User.email=="test")
    )

Возможно ли такое?

op1 = "=="
op2 = "!="
logic = "|"
User.select()
    .where(
        (User.full_name op1 "test") logic
        (User.email op2 "test")
    )

person Alexander    schedule 13.11.2015    source источник


Ответы (1)


Вы можете использовать операторский модуль.

import operator
name_is_test = operator.eq(User.full_name, 'test')
email_is_test = operator.eq(User.email, 'test')
User.select().where(operator.or_(name_is_test, email_is_test)
person coleifer    schedule 20.11.2015