Как сохранить расчетный столбец в Sqlalchemy?Python

Программы на Python
Anonymous
 Как сохранить расчетный столбец в Sqlalchemy?

Сообщение Anonymous »

Я хотел бы знать, как сохранить рассчитанное значение чистым способом в базе данных: < /p>
Пример (взятый из руководства Sqlalchemy): < /p>

Код: Выделить всё

Base = declarative_base()

class Interval(Base):
__tablename__ = 'interval'

id = Column(Integer, primary_key=True)
start = Column(Integer)
end = Column(Integer)

@hybrid_property
def length(self):
return self.end - self.start
Так что длина рассчитывается. Но для более легких поисков запросов (в другом инструменте базы данных) я хотел бы, чтобы эта длина также была сохранена в таблице. Просто добавьте: length = column (float) . Очевидно, что это не работает (но я думал, что, тем не менее, я попробую: P), поскольку метод длины перезаписывает продолжительность колонны. Чтобы вычислить его в init & defer to super (), например: < /p>
Base = declarative_base()

class Interval(Base):
__tablename__ = 'interval'

id = Column(Integer, primary_key=True)
start = Column(Integer)
end = Column(Integer)
length = Column(Integer)

def __init__(self, *args, **kwargs):
kwargs['length'] = kwargs['end'] - kwargs['start']
super().__init__(*args, **kwargs)
< /code>
Однако я чувствую, что должен быть более чистый способ. Есть ли?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/638 ... sqlalchemy

Вернуться в «Python»