Flask -SQLAlchemy: Добавить вычисляемый столбец в модель (максимальное значение из объединенной таблицы) - PullRequest
0 голосов
/ 05 августа 2020

У меня есть две связанные модели:

class Product(db.Model):
__tablename__ = 'product'
id = db.Column(db.Integer, primary_key=True)
name  = db.Column("name", db.String(100))
link = db.Column('link', db.String(140))
history = db.relationship('History', backref='product', lazy='joined')
def __init__(self, name, id_site, link):
    self.name       = name
    self.link       = link
def __repr__(self):
    return str(self.id) + ' - ' + str(self.name)

class History(db.Model):
__tablename__ = 'history'
id = db.Column(db.Integer, primary_key=True)
id_product = db.Column("id_product", db.Integer, db.ForeignKey('product.id'))
pret = db.Column('price', db.String(20))
data = db.Column('data', db.DateTime())
def __init__(self, name, id_product , price, data):
    self.id_product = id_product 
    self.price       = price
    self.data       = data
def __repr__(self):
    return str(self.id) + ' - ' + str(self.id_product)

Я хочу добавить в модель Product новый вычисляемый столбец, который является максимальным значением столбца data из таблицы history (это связь один-ко-многим) для каждого продукта. Я пробовал использовать @hybrid_property, но нужно обработать слишком много запросов, так как для каждого продукта есть новый запрос. Кроме того, я хочу, чтобы результирующее значение product.history было повторяемым. Спасибо!

...