Joh*_*ton 8 python sqlalchemy flask flask-sqlalchemy
我有User哪个has-one Person.所以User.person是一个Person.
我想User从列表中获取一个列表Person.
我尝试了以下方法:
>>> people = Person.query.filter().limit(3)
<flask_sqlalchemy.BaseQuery object at 0x111c69bd0>
>>> User.query.filter(User.person.in_(people)).all()
NotImplementedError: in_() not yet supported for relationships. For a simple many-to-one, use in_() against the set of foreign key values.
Run Code Online (Sandbox Code Playgroud)
获取该列表中的Users 列表的最佳方法User.person是people什么?
dav*_*ism 15
正如错误消息有用地告诉您,您需要使用in_对外键:
User.query.join(User.person).filter(Person.id.in_(p.id for p in people)).all()
Run Code Online (Sandbox Code Playgroud)
因为无论如何你要查询两者,最好是加入加载然后让人们使用Python:
people = Person.query.join(Person.user).options(db.contains_eager(Person.user)).limit(3).all()
users = [p.user for p in people]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2144 次 |
| 最近记录: |