xadmin的使用
前记
Django自身带的admin功能众多,但基于admin开发的xadmin功能更完善,开发也简便且美观
配置
在seeting.py的INSTALLED_APPS引入xadmin
1 |
|
配置url
1 |
|
使用
基本配置
新建一个.py文件,一般放在uesr app里面
配置页面
1 |
|
2.定义自己的model在后台的显示
使用xadmin可以非常方便的定义我们的后台管理,在同样的自己定义的app文件增加如下代码:
一个简单的栗子
1 |
|
1.过滤器
过滤器除了如上的list_filter,还有其他属性
在 Model OptionClass 中设置以下属性:
- list_filter 属性:
该属性指定可以过滤的列的名字, 系统会自动生成搜索器 - search_fields 属性:
属性指定可以通过搜索框搜索的数据列的名字, 搜索框搜索使用的是模糊查找的方式, 一般用来搜素名字等字符串字段 - free_query_filter 属性:
默认为 True , 指定是否可以自由搜索. 如果开启自有搜索, 用户可以通过 url 参数来进行特定的搜索, 例如:
http://xxx.com/xadmin/auth/user/?name__contains=tony2.图表
在 Model OptionClass 中设定 data_charts 属性, 该属性为 dict 类型, key 是图表的标示名称, value 是图表的具体设置属性. 使用示例:图表的主要属性为:1
2
3
4
5class RecordAdmin(object):
data_charts = {
"user_count": {'title': u"User Report", "x-field": "date", "y-field": ("user_count", "view_count"), "order": ('date',)},
"avg_count": {'title': u"Avg Report", "x-field": "date", "y-field": ('avg_count',), "order": ('date',)}
} - title : 图表的显示名称
- x-field : 图表的 X 轴数据列, 一般是日期, 时间等
- y-field : 图表的 Y 轴数据列, 该项是一个 list, 可以同时设定多个列, 这样多个列的数据会在同一个图表中显示
- order : 排序信息, 如果不写则使用数据列表的排序
3.书签
书签:记录数据列表页面特定的数据过滤, 排序等结果. 添加的书签还可以在首页仪表盘中作为小组件添加
在 Model OptionClass 中设定如下属性:
- show_bookmarks 属性:
设置是否开启书签功能, 默认为 True - list_bookmarks 属性:
设置默认的书签. 用户可以在列表页面添加自己的书签, 你也可以实现设定好一些书签, 使用实例如下:1
2
3
4
5
6
7
8
9class UserAdmin(object):
list_bookmarks = [{
'title': "Female", # 书签的名称, 显示在书签菜单中
'query': {'gender': True}, # 过滤参数, 是标准的 queryset 过滤
'order': ('-age'), # 排序参数
'cols': ('first_name', 'age', 'phones'), # 显示的列
'search': 'Tom' # 搜索参数, 指定搜索的内容
}, {...}
]
4.导出选项
ps:如果想要导出 Excel 数据, 需要安装 xlwt.
默认情况下, xadmin 会提供 Excel, CSV, XML, json 四种格式的数据导出. 可以通过设置 OptionClass 的 list_export 属性来指定使用哪些导出格式 (四种各使用分别用 xls, csv, xml, json 表示), 或是将 list_export 设置为 None 来禁用数据导出功能. 示例如下:
1 |
|
5.定时刷新
该插件在数据列表页面提供了定时刷新功能, 对于需要实时刷新列表页面查看即时数据的情况非常有用.
设置 OptionClass 的 refresh_times 属性即可实现自动刷新. refresh_times 属性是存有刷新时间的数组. xadmin 默认不开启该插件.示例如下:
1 |
|
6.数据详情
该插件可以在列表页中显示相关字段的详细信息, 使用 Ajax 在列表页中显示.(右边有个感叹号)
使用该插件主要设置 OptionClass 的 show_detail_fields, show_all_rel_details 两个属性. show_detail_fields 属性设置哪些字段要显示详细信息, show_all_rel_details 属性设置时候自动显示所有关联字段的详细信息, 该属性默认为 True. 示例如下:
1 |
|
7.数据即时编辑
该插件可以在列表页中即时编辑某字段的值, 使用 Ajax 技术, 无需提交或刷新页面即可完成数据的修改, 对于需要频繁修改的字段(如: 状态)相当有用.
使用该插件主要设置 OptionClass 的 list_editable 属性. list_editable 属性设置哪些字段需要即时修改功能. 示例如下:
1 |
|
8.设置只读字段
在使用xadmin的时候,ModelAdmin默认只有对于model的增删改查,但是总是有些字段是不希望用户来编辑的。而 readonly_fields 设置之后不管是admin还是其他用户都会变成只读,而我们通常只是想限制普通用户。 这时我们就可以通过重写 get_readonly_fields 方法来实现对特定用户的只读显示。
1 |
|
- 本文作者:So1n
- 本文链接:http://so1n.me/2017/10/21/23_use_xadmin/index.html
- 版权声明:本博客所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!