我在烧瓶中开发了一种应用。我想追踪创造和变化。对于管理员我使用flask-admin:
class MyModelAdmin(ModelView):
def on_model_change(self, form, model, is_created):
history = HistoryModel(
..
..
)
db.session.add(history)
db.session.commit()
我有保存更改的历史记录模型:
class HistoryModel(db.Model):
__tablename__ = 'history'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
date = db.Column(db.DateTime)
user_id = db.Column(db.Integer, nullable=True)
object_type = db.Column(db.String(32), nullable=False)
我不确定这是正确的做法。顺便说一句,如何在HistoryModel中跟踪更改并创建保存?
答案 0 :(得分:0)
SQLAlchemy为您提供事件监听。 listens_for
中有一个名为sqlalchemy.event
的装饰。您可以将其用于listens_for(HistoryModel, "after_insert")
和listens_for(HistoryModel.date, "set")
。查看有关events和orm events。
答案 1 :(得分:0)
扩展名SQLAlchemy-continuum可能是值得研究的选项。它会版本化您的模型(数据)