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的高级Git库 Gittle
Sep 22 Python
跟老齐学Python之私有函数和专有方法
Oct 24 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
python中列表和元组的区别
Dec 18 Python
Python工程师面试必备25条知识点
Jan 17 Python
Python中一行和多行import模块问题
Apr 01 Python
Python 互换字典的键值对实例
Feb 12 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
Jan 28 Python
OpenCV-Python使用cv2实现傅里叶变换
Jun 09 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获取http请求的头信息实现步骤
2012/12/16 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
codeigniter中view通过循环显示数组数据的方法
2015/03/20 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
深入解析Javascript闭包的功能及实现方法
2016/07/10 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
微信小程序下拉刷新界面的实现
2017/09/28 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
详解vue项目打包步骤
2019/03/29 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
实例讲解Python中的私有属性
2014/08/21 Python
简单实现python爬虫功能
2015/12/31 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
暇步士官网:Hush Puppies
2016/09/22 全球购物
法国家具及室内配件店:home24
2017/01/21 全球购物
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
高二地理教学反思
2014/01/24 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
生活小常识广播稿
2015/08/19 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
pandas数值排序的实现实例
2021/07/25 Python
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers