您定义以下类方法:
@classmethoddef users_by_skill(cls, skill): return User.query.join(Skill).filter(skill.skill).all()
您可能希望像这样使用此功能:
users = Users.users_by_skill('nunchuk')
这意味着
skillin中的参数
users_by_skill是一个字符串。然后,您尝试使用
skill.skill,基本上就像在做一样
'nunchuk'.skill。Python
skill在字符串类上没有属性,因此会出错。
该
filter函数实际上带有一个
Criteria对象。换句话说,您没有向其传递类似的值
"filter",而是向其传递了一个表示“技能表上的技能列必须等于’nunchuk’”这一概念的标准。您可以使用如下语法来做到这一点:
@classmethoddef users_by_skill(cls, skill_name): return User.query.join(Skill).filter(Skill.skill == skill_name).all()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)