我有两张桌子:
class Wishlist(db.Model):
__tablename__ = 'wishlists'
id = db.Column(db.Integer, primary_key=True)
device_id = db.Column(db.Integer, nullable=False)
class Device(db.Model):
__tablename__ = 'devices'
id = db.Column(db.Integer, primary_key=True)
unique_id = db.Column(db.String(255), nullable=False)
每个心愿单都有Integer
字段Device.id
。当我选择所有愿望清单并尝试加入Device
对象进行查询时:
query = db.session.query(
Wishlist,
Device
).filter(
...
).join(
Device,
Device.id == Wishlist.device_id
)
SqlAlchemy为我返回元组:
(<app.main.models.Wishlist object at 0xa5cec2c>, <app.main.models.Device object at 0xa5d14ac>)
但是如何设置像wishlist属性这样的设备对象来访问它wishlist.device.id
答案 0 :(得分:3)
您在致电Wishlist
时指定了Device
和query
。如果您只想通过属性暴露前者,请仅指定一个。
query = db.session.query(
Wishlist
).filter(
...
).join(
Device,
Device.id == Wishlist.device_id
)
答案 1 :(得分:2)
考虑documentation中的示例,这样的事情应该有用吗?
for (wishlist, device) in query:
print wishlist.device_id, device.unique_id # etc...