我的过滤器来自get params,如下所示:filterName ='email',filterValue ='john @',我需要根据它们构建我的查询。
如果我尝试使用rows.filter( getattr( self.model, filterName ).like( filterValue + '%' ) )
,我会收到错误:AttributeError: 'NoneType' object has no attribute 'like'
由于我的模型和过滤器参数都来自GET,因此我必须为此实现修复。你会怎么建议?
答案 0 :(得分:0)
你没有显示self / self.model在那里。通常它是一个类名。
所以,如果你有一个模型用户
field = 'id'
field_val = 3
qry = Session.query(User).filter(getattr(User, field) == field_val)
应该很好。
你没有使用来自实例的getattr(self),而是来自类本身。