Flask-admin 一对一(多对一也可参考)模型中 显示/编辑 关联模型的字段

如ER图,一共三张表,其中SM_GateWay和SM_GATEWAY_TYPE是多对一的关系,SM_GateWay和insightchina_sim_status是一对一的关系;

 需求:

想要在编辑insightchina_sim_status表中数据的时候,也能编辑SM_GateWay表中的数据,同时在insightchina_sim_status的View中能看到SM_GateWay中的信息;

说起来容易,但做起来难,在百度,google找了几天,愣是没有这种案例,就像跷跷板,无论你怎么弄,总之会有一头顾不上,该解决方案,借用一对多和一对一的思维方式,最后实现需求

我用的是Flask-Admin自带的后端管理工具,只是用到View和Model这两块;

在一般情况下,一对一的关联模型数据,可以很好的显示在View中,但是你无法在编辑的时候对所关联的模型进行编辑,如果你想编辑,就必须用到Inline_model模块,但是如果你用了Inline_model模块,就无法将关联模型显示在List的详情页面上,因为Inline_model是用在多对多或者一对多的关联模型上的;

下面开始上代码,几个需要注意的关键代码relationship关系,__repr__函数,hybrid_property装饰器,__mapper_args__排序,back_populates反向引用 这几个地方是我解决这个问题的关键点

Model.py


class SM_GATEWAY(db.Model):
    """
    网关表
    """
    __tablename__ = 'sm_gateway'
    GATEWAY_ID = db.Column(db.Integer, primary_key=True)
    GATEWAY_ACCOUNT = db.Column(db.String(60), unique=False)
    GATEWAY_PWD = db.Column(db.Text, unique=False)
    IF_IOT_HU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值