Sqlalchemy - 返回一组对象

时间:2016-10-19 21:21:47

标签: python database sqlalchemy relational-database flask-sqlalchemy

我有以下模特:

{fileReference.properties.width}

我理解

class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50), unique=True) email = Column(String(120), unique=True) password = Column(String(12)) balance = Column(Float()) inventory = relationship("Inventory", primaryjoin="and_(User.id==Inventory.user_id, BaseGood.id==Inventory.basegood_id)", back_populates="user") class Inventory(Base): __tablename__ = 'inventory' id = Column(Integer, primary_key=True) basegood_id = Column(Integer, ForeignKey('basegoods.id')) producables_id = Column(Integer, ForeignKey('producables.id')) user_id = Column(Integer, ForeignKey('users.id')) basegood = relationship('BaseGood', backref='basegoods', lazy="joined") user = relationship("User") class Producable(Base): __tablename__ = 'producables' id = Column(Integer, primary_key=True) name = Column(String(50), unique=True) price = Column(Float) time = Column(Integer) blueprint = relationship('BaseGood', secondary='blueprints', backref='producables', lazy="joined") class BaseGood(Base): __tablename__ = 'basegoods' id = Column(Integer, primary_key=True) name = Column(String(50), unique=True) initprice = Column(Float) price = Column(Float) producable = relationship('Producable', secondary='blueprints', backref='basegoods', lazy="joined")

应该是一样的。但我怀疑我必须在这里加入一些。

所以,当我现在打电话给inventory = relationship("Inventory", backref='inventory', lazy='joined')时,我会收到User.query.get(1).inventory个对象的集合。然后,我可以分别拨打Inventory.basegood。那不是我需要的。

我想要的是.producableBaseGood个对象的集合。我想这里需要应用魔法。

Producable

但是我无法找到合适的联接来实现这一目标。

任何提示都表示赞赏。 TIA

0 个答案:

没有答案