我有两个具有外键关系的表,并且我使用flask-admin作为管理GUI。
在某些情况下,我需要修改外键。在这种情况下,相关表的所有现有记录都应该更新(使用新的外键)。您将如何实现此功能?
我尝试了flask-admin的on_model_change函数。虽然我遇到了这个问题,但我只能从函数(?) ->获得更新后的密钥(我需要旧密钥来查找并更新现有的评估记录)。此外,我无法提交新的密钥,除非评估记录已经更新(不满足外键约束)。
我可以在flask-admin GUI中实现此功能吗?
class Assessment(db.Model):
__tablename__ = "assesment_table"
id = db.Column(db.Integer, primary_key=True)
psr_id = db.Column(db.String(40), db.ForeignKey("psr_object_table.psr_id"))
class Unit(db.Model):
__tablename__ = "units_table"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
psr_id = db.Column(db.String(40), unique=True)
#needed for Flask-Admin view
class UnitView(ModelView):
def on_model_change(self, form, model, is_created):
#get old_key
#query and update db with new foreign key
#commit everything任何帮助都是非常感谢的。谢谢
发布于 2018-12-22 02:19:44
使用数据库端级联:
class Assessment(db.Model):
...
psr_id = db.Column(db.String(40), db.ForeignKey("psr_object_table.psr_id",
onupdate="CASCADE"))https://stackoverflow.com/questions/53888812
复制相似问题