背景:
在使用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 hereddlist = 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得到的启示,进而找到了该方法