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基于高斯消元法计算线性方程组示例
Jan 17 Python
python正向最大匹配分词和逆向最大匹配分词的实例
Nov 14 Python
python selenium firefox使用详解
Feb 26 Python
Python实现图片添加文字
Nov 26 Python
python求绝对值的三种方法小结
Dec 04 Python
Spring实战之使用util:命名空间简化配置操作示例
Dec 09 Python
pytorch 常用线性函数详解
Jan 15 Python
基于TensorBoard中graph模块图结构分析
Feb 15 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
python与idea的集成的实现
Nov 20 Python
python装饰器代码深入讲解
Mar 01 Python
Python闭包的定义和使用方法
Apr 11 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
AngularJS入门教程之双向绑定详解
2016/08/18 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
python Xpath语法的使用
2020/11/26 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
税务专业毕业生自荐信
2013/11/10 职场文书
签证工作证明模板
2015/06/15 职场文书
在校学生证明格式
2015/06/24 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
Golang流模式之grpc的四种数据流
2022/04/13 Golang
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js