第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明

设置后台列表页面可以直接修改字段内容

在当前APP里的adminx.py文件里的数据表管理器里设置

list_editable = ['可以修改的字段','可以修改的字段']

  1. class UsersAdmin(object): # 自定义用户信息数据表管理器类
  2. # 设置xadmin后台显示字段
  3. list_display = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
  4. 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined']
  5. # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
  6. search_fields = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile']
  7. # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
  8. list_filter = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
  9. 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined']
  10. model_icon = 'fa fa-user-plus'
  11. ordering = ['-id']
  12. readonly_fields = ['password']
  13. exclude = ['first_name','last_name']
  14. list_editable = ['username','email']
  15. xadmin.site.register(Users, UsersAdmin) # 将户信息数据表注册到xadmin后台显示

设置后台列表页面,自定义列也就是自定义一个非数据表的字段

adminx.py文件里的数据表管理器里设置list_display=要显示的数据字段名称,当然也可以设置一个函数名称,在models里定义函数,在后台就会多一列,显示的函数返回值

models文件

自定义函数名称.short_description = '后台显示名称'

  1. class Course(models.Model):
  2. name = models.CharField(max_length=50, verbose_name='课程名称')
  3. desc = models.CharField(max_length=300, verbose_name='课程描述')
  4. detail = models.TextField(verbose_name='课程详情')
  5. degree = models.CharField(verbose_name='课程级别', choices=(('cj', '初级'), ('zj', '中级'), ('gj', '高级')), max_length=3)
  6. learn_times = models.IntegerField(default=0, verbose_name='学习时长(分钟)')
  7. students = models.IntegerField(default=0, verbose_name='学习人数')
  8. fav_nums = models.IntegerField(default=0, verbose_name='收藏人数')
  9. image = models.ImageField(upload_to='courses/%Y/%m', verbose_name='课程封面图', max_length=100)
  10. click_nums = models.IntegerField(default=0, verbose_name='点击数')
  11. add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
  12.  
  13. class Meta:
  14. verbose_name = '课程'
  15. verbose_name_plural = verbose_name
  16.  
  17. # 自定义列
  18. def hqzhjie(self):
  19. return 555
  20. hqzhjie.short_description = '章节数'
  21.  
  22. def __str__(self):
  23. return self.name # 设置在xadmin后台显示字段, 注意如果此表被另外的了外键关联了,这个返回字段就是外键表的外键名称

adminx.py

  1. class CourseAdmin(object): # 自定义数据表管理器类
  2.  
  3. # 设置xadmin后台显示字段
  4. list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
  5. 'fav_nums', 'image', 'click_nums', 'add_time', 'hqzhjie']
  6.  
  7. # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
  8. search_fields = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
  9. 'fav_nums', 'image', 'click_nums']
  10.  
  11. # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
  12. list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
  13. 'fav_nums', 'image', 'click_nums', 'add_time']
  14. model_icon = 'fa fa-clone'
  15. xadmin.site.register(Course, CourseAdmin) # 将数据表注册到xadmin后台显示

结果

设置后台列表页面,自定义列也就是自定义一个非数据表的字段,统计当前id被多少条数据外键关联

self.外键类名称(小写).all().count()  统计外键关联了当前主键的数据

注意:只能统计外键关联了当前主键的数据

models文件

  1. class Course(models.Model):
  2. name = models.CharField(max_length=50, verbose_name='课程名称')
  3. desc = models.CharField(max_length=300, verbose_name='课程描述')
  4. detail = models.TextField(verbose_name='课程详情')
  5. degree = models.CharField(verbose_name='课程级别', choices=(('cj', '初级'), ('zj', '中级'), ('gj', '高级')), max_length=3)
  6. learn_times = models.IntegerField(default=0, verbose_name='学习时长(分钟)')
  7. students = models.IntegerField(default=0, verbose_name='学习人数')
  8. fav_nums = models.IntegerField(default=0, verbose_name='收藏人数')
  9. image = models.ImageField(upload_to='courses/%Y/%m', verbose_name='课程封面图', max_length=100)
  10. click_nums = models.IntegerField(default=0, verbose_name='点击数')
  11. add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
  12.  
  13. class Meta:
  14. verbose_name = '课程'
  15. verbose_name_plural = verbose_name
  16.  
  17. # 自定义列
  18. def hqzhjie(self):
  19. return self.lesson_set.all().count()
  20. hqzhjie.short_description = '章节数'
  21.  
  22. def __str__(self):
  23. return self.name # 设置在xadmin后台显示字段, 注意如果此表被另外的了外键关联了,这个返回字段就是外键表的外键名称

adminx.py

  1. class CourseAdmin(object): # 自定义数据表管理器类
  2.  
  3. # 设置xadmin后台显示字段
  4. list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
  5. 'fav_nums', 'image', 'click_nums', 'add_time', 'hqzhjie']
  6.  
  7. # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
  8. search_fields = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
  9. 'fav_nums', 'image', 'click_nums']
  10.  
  11. # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
  12. list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
  13. 'fav_nums', 'image', 'click_nums', 'add_time']
  14. model_icon = 'fa fa-clone'
  15. xadmin.site.register(Course, CourseAdmin) # 将数据表注册到xadmin后台显示

设置后台列表页面,自定义列也就是自定义一个非数据表的字段,获取一个字段值拼接成超链接

mark_safe() 允许执行里面html代码
self.image(字段名称) 获取当前字段值

models文件

  1. class Users(models.Model): # 创建类必须继承models.Model,类名将是在数据库里的表名称
  2. username = models.CharField(max_length=150, verbose_name='用户名', default='', null=False, blank=False)
  3. password = models.CharField(max_length=128, verbose_name='密码', default='', blank=False) # 密码字段,长度128,默认值为空字符,前端不允许用户输入空
  4. last_login = models.DateTimeField(verbose_name='登录日期', null=True, blank=True) # 允许为空
  5. first_name = models.CharField(max_length=30, verbose_name='拓展1', null=False)
  6. last_name = models.CharField(max_length=30, verbose_name='拓展2', null=False)
  7. email = models.EmailField(max_length=254, verbose_name='邮箱', null=False, blank=False)
  8. is_active = models.BooleanField(max_length=1, default=0, verbose_name='是否激活', null=False)
  9. date_joined = models.DateTimeField(verbose_name='注册日期', null=True)
  10. nick_name = models.CharField(max_length=50, verbose_name='昵称', default='')
  11. birday = models.DateField(verbose_name='生日', null=True)
  12. gender = models.CharField(max_length=6, verbose_name='性别', choices=(("male", "男"), ("female", "女")), default='male')
  13. address = models.CharField(max_length=100, verbose_name='地区', default='')
  14. mobile = models.CharField(max_length=11, verbose_name='手机', null=True, blank=True)
  15. image = models.ImageField(upload_to='image/%Y/%m', verbose_name='头像', default='image/default.png', max_length=100,storage=ImageStorage())
  16.  
  17. class Meta:
  18. verbose_name = '用户信息'
  19. verbose_name_plural = verbose_name
  20.  
  21. # 自定义列
  22. def hqzhjie(self):
  23. from django.utils.safestring import mark_safe # 允许执行html代码
  24. pj_url = '<a href="/media/{0}">跳转</a>'.format(self.image) # 获取头像字段拼接成连接地址
  25. return mark_safe(pj_url) # 返回当前头像的连接地址
  26. hqzhjie.short_description = '头像'
  27.  
  28. def __str__(self):
  29. return self.username

adminx.py

  1. class UsersAdmin(object): # 自定义用户信息数据表管理器类
  2. # 设置xadmin后台显示字段
  3. list_display = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
  4. 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined','hqzhjie']
  5. # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
  6. search_fields = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile']
  7. # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
  8. list_filter = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
  9. 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined']
  10. model_icon = 'fa fa-user-plus'
  11. ordering = ['-id']
  12. readonly_fields = ['password']
  13. exclude = ['first_name','last_name']
  14. xadmin.site.register(Users, UsersAdmin) # 将户信息数据表注册到xadmin后台显示

结果

设置后台列表页面,设置自动刷新

这是一个插件,放在xadmin/plugins/refresh.py

在当前APP里的adminx.py文件里的数据表管理器里设置refresh_times参数即可使用该插件

  1. class UsersAdmin(object): # 自定义用户信息数据表管理器类
  2. # 设置xadmin后台显示字段
  3. list_display = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
  4. 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined','hqzhjie']
  5. # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
  6. search_fields = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile']
  7. # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
  8. list_filter = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
  9. 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined']
  10. model_icon = 'fa fa-user-plus'
  11. ordering = ['-id']
  12. readonly_fields = ['password']
  13. exclude = ['first_name','last_name']
  14. refresh_times = [3, 5]
  15. xadmin.site.register(Users, UsersAdmin) # 将户信息数据表注册到xadmin后台显示

结果

Xadmin目录结构说明

plugins是最重要的一个目录

第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明的更多相关文章

  1. 第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框

    第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框 首先安装DjangoUeditor3模块 Ueditor HTML编辑器是百度开源的HTML编辑器 下载 ...

  2. 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置

    第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置 设置后台某个字段的排序规则 在当前APP里的adminx.py文件里的数据表管理器里设置 order ...

  3. 第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置

    第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置 1.xadmin主题设置 要使用xadmin主题,需要在一个app下的adminx.py后台注册文件里,写一 ...

  4. 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

    第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统,页面基于Bootstr ...

  5. 第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin管理员详情页面布局,导航图标设置

    第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin进阶 1.后台管理员详情页面布局 后台管理员详情页面,区块是可以拖动的,而且分为了很多个区块 这个页面的布局在xadm ...

  6. 第三百九十六节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,自定义列表页上传插件

    第三百九十六节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,自定义列表页上传插件 设置后台列表页面字段统计 在当前APP里的adminx.py文件里的数据表管理器里设置 ag ...

  7. 第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6

    第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6 1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步 ...

  8. 第三百九十节,Django+Xadmin打造上线标准的在线教育平台—Django+cropper插件头像裁剪上传

    第三百九十节,Django+Xadmin打造上线标准的在线教育平台—Django+cropper插件头像裁剪上传 实现原理 前台用cropper插件,将用户上传头像时裁剪图片的坐标和图片,传到逻辑处理 ...

  9. 第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册

    第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册 基于类的路由映射 from django.conf.urls import url, incl ...

随机推荐

  1. Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6

    Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱: ...

  2. Python数据可视化系列-01-快速绘图

    快速绘图 数据图绘制 matplotlib的字库pyplot提供了快速绘制2D图标的API接口. import numpy as np import matplotlib.pyplot as plt ...

  3. U3D面试五

    U3D面试题 配置Unity3D调试环境 Visual Studio Tools for Unity 访问http://unityvs.com 安装对应的版本 使用方法(生成项目文件,如何调试) Ar ...

  4. 设备树中ranges属性分析(1)

    作者 彭东林 pengdonglin137@163.com   软件环境 Linux-4.10.17 Qemu+vexpress   概述 在设备树中有时会看到ranges属性,这个ranges属性可 ...

  5. 每次运行caffe代码之前需要考虑修改的地方

    Train阶段: (1)       train.sh中的solver.prototxt路径 (2)       train.sh中的caffemodel路径 (3)       train.sh中的 ...

  6. MUI DtPicker 显示自定义日期

    MUI地址:http://dev.dcloud.net.cn/mui/ 首先引入相关JS CSS脚本. HTML代码: <input class="dt flat" styl ...

  7. CentOS6.9下安装python notebook

    操作系统:CentOS6.9_x64 python版本 : python2.7.13 添加低权限新用户: useradd mike su mike 使用virtualenv安装python2.7环境 ...

  8. 《Unix&Linux大学教程》学习笔记6——Unix文件系统

    1:Unix文件类型——3种 普通文件(常规文件):文本文件(纯文本.脚本.源程序.配置文件.html等).二进制文件(多媒体文件.数据库等) 目录:用于组织文件 伪文件:不存储数据,目的是提供一种服 ...

  9. O_DIRECT与O_SYNC区别(转)

    O_DIRECT和O_SYNC是系统调用open的flag参数.通过指定open的flag参数,以特定的文件描述符打开某一文件. 这两个flag会对写盘的性能有很大的影响,因此对这两个flag做一些详 ...

  10. 抓取epsg.io的内容

    简述 epsg.io是一个查询EPSG坐标系相关信息的好网站,内容很全.有各种格式的定义可以直接下载,也有坐标系的范围名称等相关信息,所以想抓取这些信息下来,方便对接各个系统. epsg.io本身是开 ...