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实现读取目录所有文件的文件名并保存到txt文件代码
Nov 22 Python
python实现将元祖转换成数组的方法
May 04 Python
Python中splitlines()方法的使用简介
May 20 Python
python requests使用socks5的例子
Jul 25 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
原生python实现knn分类算法
Oct 24 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
查看端口并杀进程python脚本代码
Dec 17 Python
为什么称python为胶水语言
Jun 16 Python
python如何导出微信公众号文章方法详解
Aug 31 Python
python 实现控制鼠标键盘
Nov 27 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
Mar 04 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
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
PHP速成大法
2015/01/30 PHP
php抽象类用法实例分析
2015/07/07 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
关于JavaScript的一些看法
2009/05/27 Javascript
使用jquery实现div的tab切换实例代码
2013/05/27 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
Pytorch to(device)用法
2020/01/08 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
windows支持哪个版本的python
2020/07/03 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
使用CSS实现弹性视频html5案例实践
2012/12/26 HTML / CSS
this关键字的含义
2015/04/08 面试题
小学生优秀评语大全
2014/04/22 职场文书
工程承诺书怎么写
2014/05/24 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
小学教研工作总结2015
2015/05/13 职场文书
党员转正大会主持词
2015/07/02 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android
PyTorch中permute的使用方法
2022/04/26 Python