xadmin 官方文档: https://xadmin.readthedocs.io/en/docs-chinese/
1.标题和页尾
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)
2. 折叠菜单
menu_style = "accordion"
效果如下:
3.设置model全局图标
和上面修改title和footer一样,在类GlobalSetting 中添加:
class GlobalSetting(object):
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.显示数据详情
设置 OptionClass 的 show_detail_fields
5.列表定时刷新
设置 OptionClass 的 refresh_times
属性即可. refresh_times 属性是存有刷新时间的数组. xadmin 默认不开启该插件.
效果如下:
6.书签
数据列表页面特定的数据过滤,排序等结果,添加的书签还可以在首页仪表盘中作为小组件添加。
在Model OptionClass中设定如下属性:
show_bookmarks 属性:
设置是否开启书签功能, 默认为 True
list_bookmarks 属性:
设置默认的书签. 用户可以在列表页面添加自己的书签, 你也可以实现设定好一些书签, 使用实例如下:
list_bookmarks = [{
"title": "存在邮箱",
"query": {"user_email__contains": '@'},
"order": ("-user_name",),
"cols": ('user_name', 'user_email', 'user_mobile'),
}]
效果:
7.图表
在数据列表页面,根据列表数据生成图表,可以指定多个数据列,生成多个图表。
在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 : 排序信息, 如果不写则使用数据列表的排序
效果:
8.数据导出
如果想要导出Excel数据,需要安装xlwt。
默认情况下,xadmin会提供Excel,CSV,XML,json四种格式的数据导出,可以通过设置OptionClass的list_export
属性来指定使用哪些导出格式(四种格式分别用xls,csv,xml,json表示)或是将list_export
设置为None
来禁用数据导出功能。
list_export = ('xls', 'xml', 'json')
list_export_fields = ('id','title','status','create_time')
9.过滤
在 Model OptionClass 中设置以下属性:
- list_filter 属性:
该属性指定可以过滤的列的名字, 系统会自动生成搜索器
- search_fields 属性:
属性指定可以通过搜索框搜索的数据列的名字, 搜索框搜索使用的是模糊查找的方式, 一般用来搜素名字等字符串字段
- free_query_filter 属性:
默认为 True , 指定是否可以自由搜索. 如果开启自由搜索, 用户可以通过 url 参数来进行特定的搜索, 例如:http://xxx.com/xadmin/auth/user/?name__contains=tony
10.设置只读字段
在使用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:
11.启动主题
@xadmin.sites.register(xadmin.views.BaseAdminView)
class BaseSetting(object):
enable_themes = True #启用主题管理
use_bootswatch = True ## 使用主题
发表评论