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使用Flask框架获取用户IP地址的方法
Mar 21 Python
Python实现方便使用的级联进度信息实例
May 05 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
Nov 06 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
python flask安装和命令详解
Apr 02 Python
PyTorch基本数据类型(一)
May 22 Python
tensorflow 只恢复部分模型参数的实例
Jan 06 Python
Tensorflow Summary用法学习笔记
Jan 10 Python
Pycharm生成可执行文件.exe的实现方法
Jun 02 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 Python
Python实现归一化算法详情
Mar 18 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
WINXP下apache+php4+mysql
2006/11/25 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
PHP 第一节 php简介
2012/04/28 PHP
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
2014/05/04 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python文件去除注释的方法
2015/05/25 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
Python requests模块实例用法
2019/02/11 Python
python psutil模块使用方法解析
2019/08/01 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
水污染治理专业毕业生推荐信
2013/11/14 职场文书
课程设计心得体会
2013/12/28 职场文书
幼儿园数学教学反思
2014/02/02 职场文书
校园安全教育广播稿
2014/02/17 职场文书
财务内勤岗位职责
2014/04/17 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
促销活动总结怎么写
2014/06/25 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
Python基础详解之邮件处理
2021/04/28 Python
Go语言编译原理之变量捕获
2022/08/05 Golang