上一篇中我们基本完成了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\templates\xadmin目录中找到:

从图片中可以看出来,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

最新文章

  1. 【流量劫持】沉默中的狂怒 —— Cookie 大喷发
  2. centos 6.5安装node.js
  3. switch2osm使用open street map离线地图中文乱码方框解决办法
  4. 声明replicated属性之后我编译不通过的问题
  5. 访问WEB-INFO 目录注意事项
  6. ant
  7. Codeforce Round #218 Div2
  8. x86-64_register_and_function_frame.html
  9. 利用KeyVault来加强存储Azure Storage访问密钥管理
  10. visualvm连接服务器jvm进行监控
  11. Java学习----HashMap原理
  12. unity3d和php后台简单交互--一
  13. Echarts数据可视化series-line线图,开发全解+完美注释
  14. 通过grub-install命令把grub安装到u盘
  15. django信号 signal
  16. [原创]SOAPUI工具介绍
  17. (转)看懂UML类图和时序图
  18. [Unity-6] GameObject有时候渲染不出来
  19. Mybatis传递参数的三种方式
  20. 【计算几何】【极角排序】Gym - 101174B - Bribing Eve

热门文章

  1. JavaScript 中 OnLoad事件用法总结
  2. linux下vi命令(转)
  3. 重温CLR(十三) 定制特性
  4. 《DSP using MATLAB》示例Example8.2
  5. json对象和json字符串相互转换
  6. 移动端base.css
  7. gradle asciidoc 使用
  8. Navicat Premium 连接O​r​a​c​l​e​ ​出现o​r​a​-​1​2​5​0​5​ ​错​误​解​决​方​案
  9. Javascript实现简单的选项卡
  10. vertica从其它表迁移数据到新表(insert into 语句使用方法实例)