-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
自定义视图
只需通过 @action装饰器
from flask_appbuilder.actions import action
from flask_appbuilder import ModeView
from flask_appbuilder.models.sqla.interface import SQLAInterface
class GroupModelView(ModelView):
datamodel = SQLAInterface(Group)
related_views = [ContactModelView]
@action("myaction","Do something on this record","Do you really want to?","fa-rocket")
def myaction(self, item):
"""
do something with the item record
"""
return redirect(self.get_redirect())这将为该项目创建必要的权限,以便您可以将其包含或从特定角色中删除。 你可以很容易地在列表上实现一个大规模的删除选项。 只需将以下代码添加到您的视图。 这个例子会告诉F.A.B. 实现仅用于列表视图的动作,而不在show view上显示选项。 您可以通过禁用@action装饰器上的单个或多个参数来完成此操作。
@action("muldelete", "Delete", "Delete all Really?", "fa-rocket", single=False)
def muldelete(self, items):
self.datamodel.delete_all(items)
self.update_redirect()
return redirect(self.get_redirect())如果从列表视图中调用,F.A.B将调用你的函数和一个记录项列表。 或者如果从展示视图中调用一个项目。 默认情况下,将在列表视图和显示视图上执行一个操作,以便您的方法应该准备好处理记录列表或单个记录:
@action("muldelete", "Delete", "Delete all Really?", "fa-rocket")
def muldelete(self, items):
if isinstance(items, list):
self.datamodel.delete_all(items)
self.update_redirect()
else:
self.datamodel.delete(items)
return redirect(self.get_redirect())Reactions are currently unavailable