首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask-admin:如何更改外键和更新相关记录

Flask-admin:如何更改外键和更新相关记录
EN

Stack Overflow用户
提问于 2018-12-22 01:38:00
回答 1查看 754关注 0票数 0

我有两个具有外键关系的表,并且我使用flask-admin作为管理GUI。

在某些情况下,我需要修改外键。在这种情况下,相关表的所有现有记录都应该更新(使用新的外键)。您将如何实现此功能?

我尝试了flask-admin的on_model_change函数。虽然我遇到了这个问题,但我只能从函数(?) ->获得更新后的密钥(我需要旧密钥来查找并更新现有的评估记录)。此外,我无法提交新的密钥,除非评估记录已经更新(不满足外键约束)。

我可以在flask-admin GUI中实现此功能吗?

代码语言:javascript
复制
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

任何帮助都是非常感谢的。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-22 02:19:44

使用数据库端级联:

代码语言:javascript
复制
class Assessment(db.Model):
    ...
    psr_id = db.Column(db.String(40), db.ForeignKey("psr_object_table.psr_id",
                                                    onupdate="CASCADE"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53888812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档