web2py - тест для строки с комбинацией двух значений поля - PullRequest
4 голосов
/ 30 августа 2011

Я создаю контроллер web2py, в котором мне нужно запросить таблицу для комбинации значения x в одном поле и значения y во втором поле (в той же строке).Чтобы выполнить запрос по одному полю, я бы просто написал

db.table.field == x

Но я не знаю, как написать запрос, который ищет field==x AND field2==y

Ответы [ 2 ]

5 голосов
/ 30 августа 2011
(db.table.field1==x)&(db.table.field2==y)

См. Раздел книги по логическим операторам .

1 голос
/ 30 августа 2011

Для более продвинутой версии вы можете добавить запрос в список и использовать функцию уменьшения Python.

queries=[]
if arg1 == "x": queries.append(db.table.field == x)
if arg2 == "y": queries.append(db.table.otherfield == y)
# many conditions here....
query = reduce(lambda a,b:(a&b),queries)
db(query).select()
...