django xadmin 管理器常用显示设置方式


Posted in Python onMarch 11, 2020

课程管理器:

class CourseAdmin(object):
  # 设置列表显示字段
  list_display = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums','add_time']
  # 设置列表查询字段
  search_field = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums']
  # 设置列表过滤字段
  list_filter = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums','add_time']
  # 设置显示图标
  model_icon = 'fa fa-check-square'
  # 设置字段可以直接在列表页修改
  list_editable=['desc','degree']
  # 设置默认排序
  ordering=['-click_nums']
  # 设置详情页面只读显示
  readonly_fields=['fav_nums','click_nums']
  # 设置详情页面不显示某个字段
  exclude=['add_time']
   #自动刷新列表页面(秒数)
  refresh_times = [3,5] 

	def queryset(self):
	    # 重载queryset方法,进行过滤
	    qs = super(CourseAdmin, self).queryset()
	    # 只显示is_banner=True的课程
	    qs = qs.filter(is_banner=False)
	    return qs 
	  
	def save_models(self):
    # 在保存课程的时候统计课程机构的课程数
    # obj实际是一个course对象
    obj = self.new_obj
    # 对当前课程进行保存,否则统计的课程数会少一个
    obj.save()
    if obj.course_org is not None:
      course_org = obj.course_org
      course_org.course_nums = Course.objects.filter(course_org=course_org).count()
      course_org.save()

CourseOrg是Course的一个外键

课程机构管理器:

class CourseOrgAdmin(object):
  list_display = ['name', 'desc', 'click_num','fav_nums','image','address','city','add_time']
  search_fields = ['name', 'desc', 'click_num','fav_nums','image','address','city']
  list_filter = ['name', 'desc', 'click_num','fav_nums','image','address','city','add_time']
  # 某一个model指向它时,它是以ajax加载的方式来完成的,通过搜索来进行添加某个字段,这样可以避免数据量过大时,把所有数据都加载进来
  relfield_style='fk-ajax'

class LessonInline(object):
  model = Lesson
  extra = 0

class CourseResourceInline(object):
  model = CourseResource
  extra = 0

#inlines 实现在添加course的同时,在同页面添加相应的章节与课程资源
class CourseAdmin(object):
  inlines = [LessonInline,CourseResourceInline]  #增加章节和课程资源

补充知识:Django之定制属于自己的admin

在admin.py中使用:admin.site.register(models.类名)

# register中可以看出register中还有一个参数admin_class=None:
def register(self, model_or_iterable, admin_class=None, **options):
  if not admin_class:
    admin_class = ModelAdmin

register中可以看出register中还有一个参数admin_class=None,据此我们可以定制自己的admin

class UserAdmin(ModelAdmin):
  list_display = ('name', 'email', 'ut')
admin.site.register(UserInfo, UserAdmin)

ModelAdmin中提供了大量的可定制功能,如:

list_display,列表时,定制显示的列。

list_display_links,列表时,定制列可以点击跳转。

list_filter,列表时,定制右侧快速筛选。

list_select_related,列表时,连表查询是否自动select_related。

action,列表时,定制action中的操作。

定制HTML模板。

add_form_template = None
change_form_template = None
change_list_template = None
delete_confirmation_template = None
delete_selected_confirmation_template = None
object_history_template = None

以上这篇django xadmin 管理器常用显示设置方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过pil模块获得图片exif信息的方法
Mar 16 Python
python使用BeautifulSoup分析网页信息的方法
Apr 04 Python
python图片验证码生成代码
Jul 02 Python
python之消除前缀重命名的方法
Oct 21 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
Mar 14 Python
深入了解Django View(视图系统)
Jul 23 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
python多线程同步之文件读写控制
Feb 25 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
Python无头爬虫下载文件的实现
Apr 02 Python
python列表的逆序遍历实现
Apr 20 Python
Python中zipfile压缩包模块的使用
May 14 Python
django从后台返回html代码的实例
Mar 11 #Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 #Python
python3 实现口罩抽签的功能
Mar 11 #Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 #Python
Django+boostrap 美化admin后台的操作
Mar 11 #Python
Windows 下python3.8环境安装教程图文详解
Mar 11 #Python
django admin后管定制-显示字段的实例
Mar 11 #Python
You might like
php最简单的删除目录与文件实现方法
2014/11/28 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
JS高级笔记
2011/07/13 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
2020/06/01 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
python实现简单日期工具类
2019/04/24 Python
python配置文件写入过程详解
2019/10/19 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
Python生成词云的实现代码
2020/01/14 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
道德大讲堂实施方案
2014/05/14 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
组织生活会发言材料
2014/12/15 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
2014年乡镇纪委工作总结
2014/12/19 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
DE1107机评
2022/04/05 无线电