Bootstrap

flask-admin 在modelview 默认视图下重写create_model_actions来实现列表数据的批量处理actions

背景:

在使用flask-admin 中modelview默认的视图时,有时需要扩展额外的action来实现特定效果,如添加基于列表的批量处理事件。

材料:

制作:

先来效果:

再上代码:

 # 通过重写create_model_actions 扩展actions,即 默认视图中“选中的”下面出现
    def create_model_actions(self):
        return [
            action('read_news_action', '运行选中指令', self.read_action_view)
        ]
    
    @action('read_news_action', '运行选中指令', confirmation='确认要批量运行选中所有指令吗?')
    def read_action_view(self, ids):
        # Your custom action logic here
        ddlist = read_news_view(ids)
        if ddlist:
            self.session.add_all(ddlist)
            self.session.commit()
        print(f'Custom action executed for IDs: {ids}')

思考:

1、我们可以通过在flask-admin 的modelview视图中重写create_model_actions 的方式来实现批量业务的处理。

2、由于flask-admin官方资料并不完善,度娘搜索到的资料非常有限,只能通过阅读源码来学习较为深度的flask-admin,本create_model_actions方法重写是通过阅读源码中list.html得到的启示,进而找到了该方法

 

;