ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
1、在app下,增加adminx.py 2、 ~~~ #adminx.py import xadmin from .models import StaffBase class StaffBaseAdmin(object): pass xadmin.site.register(StaffBase,StaffBaseAdmin) ~~~ 3、扩展: ~~~ #adminx.py class StaffBaseAdmin(object): list_display=['字段1','字段2',......]#列表字段 search_fields=['字段1','字段2',......]#属性指定可以通过搜索框搜索的数据列的名字, 搜索框搜索使用的是模糊查找的方式, 一般用来搜素名字等字符串字段 list_filter=['字段1','字段2',......]#该属性指定可以过滤的列的名字, 系统会自动生成搜索器 free_query_filter=['字段1','字段2',......]#默认为 True , 指定是否可以自由搜索. 如果开启自由搜索, 用户可以通过 url 参数来进行特定的搜索 ordering=['字段1','字段2',......]#排序,加“-”为倒序 readonly_fields=['字段1','字段2',......]#只读字段 exclude=['字段1','字段2',......]#隐藏字段 list_editable=['字段1','字段2',......]#列表页可修改 show_detail_fields=['字段1','字段2',......]#显示数据详情, refresh_times =(3,5) #列表定时刷新,refresh_times 属性是存有刷新时间的数组. xadmin 默认不开启该插件. relfield_style='fk-ajax' #下拉式可选,在外键对应的字段的adminx.py ~~~ 图表 在数据列表页面,根据列表数据生成图表,可以指定多个数据列,生成多个图表。  在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 : 排序信息, 如果不写则使用数据列表的排序 同一个model注册两个管理器 ~~~ #adminx.py class app名Inline(object): model = app名 extra = 0 ~~~ 在对应的app下: `inlines=[app名Inline]` 设置只读字段 在使用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',) ~~~