码迷,mamicode.com
首页 > 其他好文 > 详细

flask_admin 笔记三 客户化视图

时间:2017-12-29 15:19:28      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:choice   就是   参数   ali   tab   first   tor   require   span   

客户化视图
1, model数据模型参数配置
1)配置全局参数
内置的ModelView类很适合快速入门。 但是,您需要配置其功能以适合您的特定型号。 这是通过设置ModelView类中提供的配置属性的值来完成的。

需要指定一些全局配置参数,首先是实现ModelView的子类并配置全局参数,然后在admin中添加所有的model数据模型:

from flask_admin.contrib.sqla import ModelView

# Flask and Flask-SQLAlchemy initialization here

class MicroBlogModelView(ModelView):
can_delete = False # disable model deletion
page_size = 50 # the number of entries to display on the list view

admin.add_view(MicroBlogModelView(User, db.session))
admin.add_view(MicroBlogModelView(Post, db.session))

2)当然,你也可以为单一model数据模型指定参数:

class UserView(ModelView): ##这就是所谓的modelview了
can_delete = False # disable model deletion

class PostView(ModelView):
page_size = 50 # the number of entries to display on the list view

admin.add_view(UserView(User, db.session))
admin.add_view(PostView(Post, db.session))

2,ModelView 配置属性
有关已定义属性的完整列表,请查看BaseModelView()的API文档。 以下是一些最常用的属性:
1) 设置CURD的选项

can_create = False
can_edit = False
can_delete = False

2) 对于一些只读列表的信息,你可以增加read-only的属性

can_view_details = True

3) 从列表视图中删除列很容易,只需传递column_excludes_list参数的列名称列表:

column_exclude_list = [password, ]

4) 要使列可搜索,或使用它们进行过滤,请指定列名称的列表:

column_searchable_list = [name, email]
column_filters = [country]

5) 要获得更快的编辑体验,请在列表视图中启用内嵌编辑:

column_editable_list = [name, last_name]

6) 或者,添加和编辑表单显示在列表页面上的模态窗口中,而不是专用的创建和编辑页面:

create_modal = True
edit_modal = True

7) 您可以通过指定选择列表来限制文本字段的可能值:

form_choices = {
title: [
(MR, Mr),
(MRS, Mrs),
(MS, Ms),
(DR, Dr),
(PROF, Prof.)
   ]
}

8) 从创建和编辑表单中删除字段:

form_excluded_columns = [last_name, email]

9) 指定WTForms 文本域的参数设置

form_args = {
name: {
label: First Name,
validators: [required()]
}
}

10)或者,指定用于呈现这些字段的WTForms小部件的参数:

form_widget_args = {
description: {
rows: 10,
style: color: black
}
}

11)当你的表单包含外键时,通过ajax加载这些相关的模型,使用:

form_ajax_refs = {
user: {
fields: [first_name, last_name, email],
page_size: 10
}
}

12)要过滤通过ajax加载的结果,可以使用:

form_ajax_refs = {
active_user: QueryAjaxModelLoader(user, db.session, User,
filters=["is_active=True", "id>1000"])
}

13)在线管理相关模型:

inline_models = [post, ]

具体的inline_models可以查看http://flask-admin.readthedocs.io/en/latest/api/mod_contrib_sqla/#flask_admin.contrib.sqla.ModelView.inline_models
14)实现csv导出功能参数:

can_export = True

这里会增加一个按钮,用于导出记录,最大的导出数可以参考export_max_rows
http://flask-admin.readthedocs.io/en/latest/api/mod_model/#flask_admin.model.BaseModelView.export_max_rows

flask_admin 笔记三 客户化视图

标签:choice   就是   参数   ali   tab   first   tor   require   span   

原文地址:https://www.cnblogs.com/minsons/p/8143889.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!