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遍历指定文件及文件夹的方法
May 09 Python
Python 多线程Threading初学教程
Aug 22 Python
Python模拟三级菜单效果
Sep 11 Python
python实现随机梯度下降(SGD)
Mar 24 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
Python批量处理csv并保存过程解析
May 16 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
python打开音乐文件的实例方法
Jul 21 Python
python 实现Requests发送带cookies的请求
Feb 08 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 程序员应该使用的10个组件
2009/10/31 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
js 字符串操作函数
2009/07/25 Javascript
验证javascript中Object和Function的关系的三段简单代码
2010/06/27 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
页面点击小红心js实现代码
2018/05/26 Javascript
vue使用Font Awesome的方法步骤
2019/02/26 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
[00:10]神之谴戒
2019/03/06 DOTA
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
python之yield表达式学习
2014/09/02 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
Python tkinter模版代码实例
2020/02/05 Python
电气自动化大学生求职信
2013/10/16 职场文书
大学生求职信范文应怎么写
2014/01/01 职场文书
个人自我剖析材料
2014/02/07 职场文书
抄作业检讨书
2014/02/17 职场文书
共产党员承诺书
2014/03/25 职场文书
万能检讨书2000字
2014/10/17 职场文书
《迟到》教学反思
2016/02/24 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书