zoukankan      html  css  js  c++  java
  • Django xadmin的使用 (二)

    上一篇中我们基本完成了xadmin的配置,但是要进行正式使用还需要更多细致的配置。

    1.页面显示中文

    settings.py中配置(这个和django自带的admin配置一样)

    # LANGUAGE_CODE = 'en-us'
    LANGUAGE_CODE = 'zh-hans'
    
    # TIME_ZONE = 'UTC'
    TIME_ZONE = 'Asia/Shanghai'
    

    可见登录页面和首页都变成中文了:

     2.xadmin的site-title和site-footer,菜单折叠

    site-title和site-footer都是设置在base_site.html模板页面中的,可以从xadmin的安装目录下的xadmin emplatesxadmin目录中找到:

    从图片中可以看出来,site_title和site_footer都是可以通过程序设置的变量,那么想要设置这两个变量要怎么做呢?只要在adminx.py文件中添加GlobalSetting类,具体代码如下:

    from xadmin import views
    
    
    class GlobalSetting(object):
        # 设置base_site.html的Title
        site_title = '我的脑袋'
        # 设置base_site.html的Footer
        site_footer  = '我的脚丫'
    xadmin.site.register(views.CommAdminView, GlobalSetting)
    

      效果:

    设置菜单折叠,在上面代码下添加:   menu_style = "accordion"

    折叠菜单如下:

     3.设置models的全局图标

    和上面修改title和footer一样,在类GlobalSetting 中添加:

        global_models_icon = {
            V_UserInfo: "glyphicon glyphicon-user", UserDistrict: "fa fa-cloud"
        }  # 设置models的全局图标
    

      

    这样我们可以看到图标的model图标的变化

    至于图标的对应代码可以去  

    http://v3.bootcss.com/components/

    http://www.yeahzan.com/fa/facss.html 

    上查找。

    官网是这样介绍的:

    4.设置app标题。

    这里还显示的是我们app的名字,怎么修改呢?

    涉及2个地方:

    1> apps.py里添加verbose_name

    2>__init__.py添加默认配置。

    之后我们就可以看到修改后的页面了:

    5.显示数据详情

    设置 OptionClass 的 show_detail_fields .  

    效果:

    6.列表定时刷新

     设置 OptionClass 的 refresh_times 属性即可. refresh_times 属性是存有刷新时间的数组. xadmin 默认不开启该插件.

    效果如下:

    7.书签

    数据列表页面特定的数据过滤,排序等结果,添加的书签还可以在首页仪表盘中作为小组件添加。

    在Model  OptionClass中设定如下属性:

    • show_bookmarks 属性:

      设置是否开启书签功能, 默认为 True

    • list_bookmarks 属性:

      设置默认的书签. 用户可以在列表页面添加自己的书签, 你也可以实现设定好一些书签, 使用实例如下:

     使用实例如下:

        list_bookmarks = [{
            "title": "存在邮箱",
            "query": {"user_email__contains": '@'},
            "order": ("-user_name",),
            "cols": ('user_name', 'user_email', 'user_mobile'),
            }]
    

      

    效果:

     

    8.图表

    在数据列表页面,根据列表数据生成图表,可以指定多个数据列,生成多个图表。

     在Model OptionClass 中设定data_charts属性,该属性为dict类型,key是图表的标示名称,value是图表的具体设置属性,示例:

        data_charts = {
            "user_count": {'title': u"User Register Raise", "x-field": "year", "y-field": ("cn",),
                           "order": ('year',)},
            # "avg_count": {'title': u"Avg Report", "x-field": "date", "y-field": ('avg_count',), "order": ('date',)}
            }
    

      

    图表的主要属性为:

    title : 图表的显示名称

    x-field : 图表的 X 轴数据列, 一般是日期, 时间等

    y-field : 图表的 Y 轴数据列, 该项是一个 list, 可以同时设定多个列, 这样多个列的数据会在同一个图表中显示

    order : 排序信息, 如果不写则使用数据列表的排序

    效果:

    9.数据导出

    如果想要导出Excel数据,需要安装xlwt。

    默认情况下,xadmin会提供Excel,CSV,XML,json四种格式的数据导出,可以通过设置OptionClass的list_export属性来指定使用哪些导出格式(四种格式分别用xls,csv,xml,json表示)或是将list_export设置为None来禁用数据导出功能。

    10.过滤

    在 Model OptionClass 中设置以下属性:

    • list_filter 属性:

      该属性指定可以过滤的列的名字, 系统会自动生成搜索器

    • search_fields 属性:

      属性指定可以通过搜索框搜索的数据列的名字, 搜索框搜索使用的是模糊查找的方式, 一般用来搜素名字等字符串字段

    • free_query_filter 属性:

      默认为 True , 指定是否可以自由搜索. 如果开启自由搜索, 用户可以通过 url 参数来进行特定的搜索, 例如:

      http://xxx.com/xadmin/auth/user/?name__contains=tony

     

    11. 设置只读字段

     在使用xadmin的时候,ModelAdmin默认只有对于model的增删改查,但是总是有些字段是不希望用户来编辑的。而 readonly_fields 设置之后不管是admin还是其他用户都会变成只读,而我们通常只是想限制普通用户。 这时我们就可以通过重写 get_readonly_fields 方法来实现对特定用户的只读显示。

    class UserInfoAdmin():
    
        def get_readonly_fields(self):
            """  重新定义此函数,限制普通用户所能修改的字段  """
            if self.user.is_superuser:
                self.readonly_fields = []
            return self.readonly_fields
        
        readonly_fields = ('user_email',)
    

      效果:

    普通用户:

    admin:

    参考: http://xadmin.readthedocs.io/en/docs-chinese/plugins.html 

             http://blog.csdn.net/lyysr/article/details/48735053

             http://www.cnblogs.com/shhnwangjian/p/6372503.html

  • 相关阅读:
    使用MobaXterm远程连接Ubuntu,启动Octave,界面不能正常显示
    ABP .Net Core 日志组件集成使用NLog
    ABP .Net Core Entity Framework迁移使用MySql数据库
    ABP前端使用阿里云angular2 UI框架NG-ZORRO分享
    阿里云 Angular 2 UI框架 NG-ZORRO介绍
    Visual Studio 2019 Window Form 本地打包发布猫腻
    VS Code + NWJS(Node-Webkit)0.14.7 + SQLite3 + Angular6 构建跨平台桌面应用
    ABP .Net Core 调用异步方法抛异常A second operation started on this context before a previous asynchronous operation completed
    ABP .Net Core To Json序列化配置
    .Net EF Core数据库使用SQL server 2008 R2分页报错How to avoid the “Incorrect syntax near 'OFFSET'. Invalid usage of the option NEXT in the FETCH statement.”
  • 原文地址:https://www.cnblogs.com/wumingxiaoyao/p/6945769.html
Copyright © 2011-2022 走看看