我的项目是使用flask-sqlalchemy作为ORM的flask-admin。
这是我的模特课:
class history_records(db.Model):
id = db.Column(db.Integer,primary_key=True)
table = db.Column(db.String(80))
field_name = db.Column(db.String(80))
old_value = db.Column(db.String(80))
new_value = db.Column(db.Text)
updated_datetime = db.Column(db.DateTime,default=datetime.utcnow())
updated_by = db.Column(db.String(80),db.ForeignKey('users.username'))
def __init__(self,table="",field_name="",updated_datetime=""):
self.name = table + ' - ' + field_name + ' - ' + updated_datetime
def __repr__(self):
return self.name
然后:
class my_view(ModelView):
#... form configs ...
def on_model_change(self,form,model,is_created=False):
#...do some stuff...
history = history_records() # .get_create_form()
history.table = model_name
history.field_name = field_name
history.old_value = old_value
history.new_value = new_value
我的所有其他视图都继承自my_view
,我特意尝试编写它,因此我不必在每个视图中使用该视图的字段名称进行自定义on_model_change
。
我缺少的部分是如何让我的应用程序保存history_records
方法创建的on_model_change
记录到数据库(postgres)。该类的实例是实例化的,它具有必要的信息,所以如何将实例保存到数据库?
我一直在引用这些页面但没有成功:
peewee
具体)非常感谢任何帮助。
答案 0 :(得分:3)
要保存历史记录实例,您需要将其添加到视图的会话中,例如
JTable