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实现微信头像加红色数字功能
Mar 26 Python
Jupyter notebook远程访问服务器的方法
May 24 Python
python中map的基本用法示例
Sep 10 Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 Python
Python SQLAlchemy入门教程(基本用法)
Nov 11 Python
Django权限设置及验证方式
May 13 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
python 爬取京东指定商品评论并进行情感分析
May 27 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
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
smarty中常用方法实例总结
2015/08/07 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
javascript json字符串到json对象转义问题
2019/01/22 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
python进程管理工具supervisor使用实例
2014/09/17 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
django框架auth模块用法实例详解
2019/12/10 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
Python json读写方式和字典相互转化
2020/04/18 Python
标准导师推荐信(医学类)
2013/10/28 职场文书
酒店服务与管理毕业生求职信
2013/11/02 职场文书
师德师风承诺书
2014/05/23 职场文书
高一军训的心得体会
2014/09/01 职场文书
2014年卫生工作总结
2014/11/27 职场文书
升学宴学生答谢词
2015/01/05 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
船舶调度指挥系统——助力智慧海事
2022/02/18 无线电