替代模型中表现不佳的@property

时间:2019-10-11 14:23:55

标签: python-3.x sqlalchemy

我正在使用带有查询的python @property从相关模型中获取第一行。然后,我从“父”检索多行。然后,对于每个父行,@ property中的查询将被调用一次。这会导致性能不佳。

感谢您的帮助。

我玩过column_property,但是还没有找到一种方法来拉回整个子行。

父类(模型):

id = db.Column(db.Integer, primary_key=True)
...
children = relationship('Child', lazy='dynamic', cascade='all, delete-orphan', passive_deletes=True)

@property
def latest_script_report(self):
    return db.session.query(Child) \
        .filter(child.parent_id == self.id) \
        .order_by(Child.updated_at.desc()) \
        .first()

子类(模型):

id = db.Column(db.Integer, primary_key=True)
updated_at = Column(DateTime,
                    default=datetime.utcnow,
                    server_default=text("CURRENT_TIMESTAMP"),
                    onupdate=datetime.utcnow,
                    nullable=False)
parent_id = ReferenceCol('parent', cascade=True, nullable=False, index=True)
parent = relationship('Parent',
                               foreign_keys='Child.parent_id')

... more child columns

0 个答案:

没有答案