flask-admin 模型视图(modelView)中重写after_model_delete与on_model_delete

背景:

当我们在使用flask-admin进行WEB开发时应该第一时间想到的是竟可能使用框架推荐的modelView模型,其次才是自定义模型 baseview,因为只有modelview模型下开发才能最大限度的提高效率。

制作:

1、在modelview视图下框架会通过默认视图进行展示模型信息,默认的删除方法是不加验证是否能删的,直接进行删除,这就需要我们扩展删除方法。

2、框架提供after_model_delete 和 on_model_delete 2个函数来分别应对删除操作后事件和删除操作前事件

复制代码
    # 默认视图中删除按钮前出发
    def on_model_delete(self, model):
        if model and model.id:
            aiflow = AiFlow.query.filter(AiFlow.flow_type_id == model.id).all()
            if aiflow:
                raise Exception('类型被其他对象引用,请解除引用后再删除.')

    # 默认视图中删除按钮后会触发
    def after_model_delete(self, model):
        print(f"The model {model} has been deleted.")

注意:a、2个函数的model中都可以拿到当前待删除模型的完整信息

b、这2个函数只能在modelview 模型及其子模型中生效

相关推荐
草药味儿の岁月16 分钟前
系统测试讲解 - Java使用selenium实现滑块验证的处理详解
java·python·selenium
uzong5 小时前
认知破局:在信息茧房时代重构后端工程师的思维思维
后端
WSSWWWSSW5 小时前
Numpy科学计算与数据分析:Numpy文件操作入门之数组数据的读取和保存
开发语言·python·数据挖掘·数据分析·numpy
TS的美梦5 小时前
scanpy单细胞转录组python教程(二):单样本数据分析之数据质控
人工智能·python·数据分析·单细胞转录组·scanpy
Lisonseekpan5 小时前
MVCC的底层实现原理是什么?
java·数据库·后端·mysql
量化风云6 小时前
『量化人的概率 03』PDF is all you need
python·金融·pdf·概率论·量化交易·量化课程
中东大鹅6 小时前
SpringBoot实现文件上传
java·spring boot·后端
高级测试工程师欧阳7 小时前
python selenium环境安装
python
David爱编程7 小时前
Java中main 方法为何必须是static?
java·后端
追梦人物7 小时前
Uniswap 手续费和协议费机制剖析
前端·后端·区块链