自我引用多对多关系隐藏列

时间:2017-02-28 19:23:53

标签: python postgresql sqlalchemy

我有2节课。类SimpleThing也可以包含作为子项的自身列表。

class SimpleThing():

    __tablename__ = 'Simple_Thing'
    id = db.Column(db.Integer, primary_key=True, nullable=False)
    bundled_things = db.relationship('SimpleThing',                
        secondary='Bundled_Things',
        primaryjoin="SimpleThing.id==Bundled_Thing.c.bundle_id",
        secondaryjoin="SimpleThing.id==Bundled_Thing.c.simple_id")

class BundledThing():

    __tablename__ = 'Bundled_Thing'

    bundle_fkey = db.ForeignKey('Simple_Thing.id')
    bundle_id = db.Column(db.Integer, bundle_fkey, nullable=False)
    bundle_thing = db.relationship('SimpleThing',
        foreign_keys='BundledThing.bundle_id')

    simple_fkey = db.ForeignKey('Simple_Thing.id')
    simple_id = db.Column(db.Integer, simple_fkey, nullable=False)
    simple_thing = db.relationship('SimpleThing',
        foreign_keys='BundledThing.simple_id')

    quantity = db.Column(db.Integer, nullable=False)

关系将正确填充为SimpleThing的列表,但我也需要数量字段。有谁知道如何通过关系将其显示为属性? SimpleThing.bundeled_things是正确的,但对于每个bundeled_thing,我希望能够通过关系请求填充bundled_thing.quantity,而不必查询联接表。

0 个答案:

没有答案