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复制文件代码实现
Dec 23 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
VSCode下配置python调试运行环境的方法
Apr 06 Python
Python实现模拟登录网易邮箱的方法示例
Jul 05 Python
Python Web编程之WSGI协议简介
Jul 18 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
python各类经纬度转换的实例代码
Aug 08 Python
python如何保证输入键入数字的方法
Aug 23 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
wxpython绘制圆角窗体
Nov 18 Python
Python sublime安装及配置过程详解
Jun 29 Python
再谈python_tkinter弹出对话框创建
Mar 20 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
递归列出所有文件和目录
2006/10/09 PHP
在MongoDB中模拟Auto Increment的php代码
2011/03/06 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
用JavaScript实现UrlEncode和UrlDecode的脚本代码
2008/07/23 Javascript
Javascript中typeof 用法小结
2015/05/12 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
基于vue-cli配置lib-flexible + rem实现移动端自适应
2017/12/26 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
跟老齐学Python之变量和参数
2014/10/10 Python
Python实现将Excel转换为json的方法示例
2017/08/05 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Django 使用logging打印日志的实例
2018/04/28 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
Python中有几个关键字
2020/06/04 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
python实现磁盘日志清理的示例
2020/11/05 Python
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
促销活动总结怎么写
2014/06/25 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技