zoukankan      html  css  js  c++  java
  • flask_admin 笔记三 客户化视图

    客户化视图
    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

  • 相关阅读:
    终结篇:MyBatis原理深入解析(二)
    Centos7 安装clamav杀毒
    jenkins 自动化部署
    docker 安装redis
    linux CentOS7 安装字体库-转
    docker 安装jenkins
    linux 下安装docker
    linux 下安装redis
    linux 下mongo 基础配置
    Linux下MongoDB安装和配置详解
  • 原文地址:https://www.cnblogs.com/minsons/p/8143889.html
Copyright © 2011-2022 走看看