假设我在 sqlalchemy 中有 3 个表。以声明方式定义的用户、角色和用户角色。有人会如何建议做这样的事情:
user = Users.query.get(1) # get user with id = 1
user_roles = user.roles.query.limit(10).all()
目前,如果我想获得用户角色,我必须查询 3 个表中的任何一个并执行连接以获得预期的结果。直接调用user.roles
会带来我无法过滤或限制的项目列表,因此它不是很有帮助。加入事情也不是很有帮助,因为我正在尝试创建一个带有以下请求的休息界面:
localhost/users/1/roles
所以只需通过该查询,我就需要能够做到Users.query.get(1).roles.limit(10) etc etc
真正应该“智能”我的休息界面而没有太多臃肿的代码和if 条件,而不必知道要加入哪个表。用户模型已经具有作为关系属性的角色,那么为什么我不能像使用普通模型那样简单地查询关系属性呢?