Я использую 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