在Flask-Admin中,可以通过自定义视图来修改列表中每个项目的可用操作。以下是一种实现方式:
flask_admin.contrib.sqla.ModelView
(如果使用SQLAlchemy)或flask_admin.contrib.mongoengine.ModelView
(如果使用MongoEngine)。get_list_contents
方法。该方法用于获取列表中每个项目的内容。get_list_contents
方法中,可以通过调用父类的get_list_contents
方法获取默认的列表内容,然后对每个项目进行修改。actions
属性来定义可用操作。actions
是一个字典,键为操作的名称,值为操作的URL。可以使用Flask的url_for
函数生成操作的URL。column_editable_list
属性来定义可编辑的列。column_editable_list
是一个列表,包含需要可编辑的列的名称。下面是一个示例代码:
from flask_admin.contrib.sqla import ModelView
class CustomModelView(ModelView):
column_editable_list = ['column1', 'column2'] # 定义可编辑的列
def get_list_contents(self, *args, **kwargs):
# 获取默认的列表内容
list_contents = super(CustomModelView, self).get_list_contents(*args, **kwargs)
# 修改每个项目的可用操作
for item in list_contents:
item.actions = {
'编辑': self.get_url('.edit_view', id=item.id), # 编辑操作的URL
'删除': self.get_url('.delete_view', id=item.id) # 删除操作的URL
}
return list_contents
在上述代码中,CustomModelView
是自定义视图类的名称。你可以根据自己的需求进行修改和扩展。在column_editable_list
中,可以指定需要可编辑的列的名称。在get_list_contents
方法中,可以根据需要修改每个项目的可用操作。
这样,在使用CustomModelView
来管理模型时,列表中的每个项目都会显示自定义的可用操作,并且指定的列可以进行编辑。
请注意,上述代码中没有提及腾讯云的相关产品和产品介绍链接地址,因为在这个特定的问题中没有涉及到与腾讯云相关的内容。如果你有其他关于腾讯云的问题,我将很乐意为你提供相关的答案和信息。
领取专属 10元无门槛券
手把手带您无忧上云