sqlalchemy получить вопрос об атрибуте модели - PullRequest
1 голос
/ 10 июня 2011

Мои фильтры приходят через get-параметры, например: filterName = 'email', filterValue = 'john @', и мне нужно построить свой запрос на их основе.

Если я пытаюсь использовать rows.filter( getattr( self.model, filterName ).like( filterValue + '%' ) ), я получаю сообщение об ошибке: AttributeError: 'NoneType' object has no attribute 'like'

Поскольку и моя модель, и параметры фильтра проходят через GET, крайне важно, чтобы я исправил это. Как бы вы предложили?

1 Ответ

0 голосов
/ 10 июня 2011

Вы не показываете, что такое self / self.model.Обычно это будет имя класса.

Так что, если у вас есть модель, пользователь

field = 'id'
field_val = 3
qry = Session.query(User).filter(getattr(User, field) == field_val)

должен работать нормально

Вы используете не getattr из экземпляра (self), а из самого класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...