sqlalchemy获取模型属性问题

时间:2011-06-10 10:48:45

标签: python sqlalchemy

我的过滤器来自get params,如下所示:filterName ='email',filterValue ='john @',我需要根据它们构建我的查询。

如果我尝试使用rows.filter( getattr( self.model, filterName ).like( filterValue + '%' ) ),我会收到错误:AttributeError: 'NoneType' object has no attribute 'like'

由于我的模型和过滤器参数都来自GET,因此我必须为此实现修复。你会怎么建议?

1 个答案:

答案 0 :(得分:0)

你没有显示self / self.model在那里。通常它是一个类名。

所以,如果你有一个模型用户

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

应该很好。

你没有使用来自实例的getattr(self),而是来自类本身。