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函数缺省值与引用学习笔记分享
Feb 10 Python
Django中处理出错页面的方法
Jul 15 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 Python
一道python走迷宫算法题
Jan 22 Python
pandas数据分组和聚合操作方法
Apr 11 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
python url 参数修改方法
Dec 26 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
python通过matplotlib生成复合饼图
Feb 06 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 Python
python 实现图片特效处理
Apr 03 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之curl实现http与https请求的方法
2014/10/21 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
深入理解Javascript动态方法调用与参数修改的问题
2013/12/10 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
jQuery中:eq()选择器用法实例
2014/12/29 Javascript
JavaScript静态类型检查工具FLOW简介
2015/01/06 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
javascript每日必学之多态
2016/02/23 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
python读取与写入csv格式文件的示例代码
2017/12/16 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
win10环境下配置vscode python开发环境的教程详解
2019/10/16 Python
python线程池如何使用
2020/05/28 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
技术总监管理职责范本
2014/03/06 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
会计求职自荐信范文
2015/03/04 职场文书
会议主持词通用版
2019/04/02 职场文书