当前位置: 首页 > article >正文

flask-admin 在modelview 视图中重写on_model_change 与after_model_change

背景:

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

制作:

1、在modelview视图下框架会通过默认视图进行展示模型信息,有时候因业务需要在模型数据增改时需要做一些前置或者后置操作。

2、框架提供on_model_change和 after_model_change2个函数来分别应模型数据修改前和修改后事件

    def after_model_change(self, form, model, is_created):
        """
            Perform some actions after a model was created or updated and
            committed to the database.

            Called from create_model after successful database commit.

            By default does nothing.

            :param form:
                Form used to create/update model
            :param model:
                Model that was created/updated
            :param is_created:
                True if model was created, False if model was updated
        """
        pass

    def on_model_change(self, form, model, is_created):
        """
            Perform some actions before a model is created or updated.

            Called from create_model and update_model in the same transaction
            (if it has any meaning for a store backend).

            By default does nothing.

            :param form:
                Form used to create/update model
            :param model:
                Model that will be created/updated
            :param is_created:
                Will be set to True if model was created and to False if edited
        """
        pass
  

注意:a、2个函数的model中都可以拿到当前模型兑换ing表单form 信息和DB模型信息

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


http://www.kler.cn/a/456814.html

相关文章:

  • AAAI 2025论文分享┆一种接近全监督的无训练文档信息抽取方法:SAIL(文中附代码链接)
  • PyTorch中的autocast:混合精度训练的实现原理
  • 互联网直播点播平台EasyDSS无人机视频推拉流技术实现工地远程监控巡检直播
  • 利用JavaScript实现猜数字
  • ABB RobotStudio学习记录(二)SmartGripper模拟
  • 如何恢复永久删除的PPT文件?查看数据恢复教程!
  • Python定义类的属性
  • RTLinux和RTOS基本知识
  • 【Rust自学】7.3. use关键字 Pt.1:use的使用与as关键字
  • Kafka优势
  • yolov6算法及其改进
  • 【ETCD】【实操篇(十四)】etcd 集群备份与还原指南
  • Pandas07
  • 使用 VSCode 学习与实践 LaTeX:从插件安装到排版技巧
  • 基于三种机器学习方法的磁芯损耗预测模型
  • 使用内网穿透工具,为树莓派配置公网地址实现远程ssh
  • springboot maven 构建 建议使用 --release 21 而不是 -source 21 -target 21,因为它会自动设置系统模块的位置
  • 分别查询 user 表中 avatar 和 nickname 列为空的用户数量
  • C# 6.0版本的WebAPI接口部署到Linux服务器
  • 【学习总结|DAY024】Maven基础
  • Git拉的项目maven无法下载
  • 24-12-28-pytorch深度学习中音频I/O 中遇到的问题汇总
  • 音视频入门基础:MPEG2-TS专题(24)——FFmpeg源码中,显示TS流每个packet的pts、dts的实现
  • python常用基础语法
  • win10系统上打包electron,实现在win7系统运行
  • Detected at node ‘truediv‘ defined at (most recent call last): Node: ‘truediv‘