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得到的启示,进而找到了该方法