第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明
第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明
设置后台列表页面可以直接修改字段内容
在当前APP里的adminx.py文件里的数据表管理器里设置
list_editable = ['可以修改的字段','可以修改的字段']
- class UsersAdmin(object): # 自定义用户信息数据表管理器类
- # 设置xadmin后台显示字段
- list_display = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
- 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined']
- # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
- search_fields = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile']
- # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
- list_filter = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
- 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined']
- model_icon = 'fa fa-user-plus'
- ordering = ['-id']
- readonly_fields = ['password']
- exclude = ['first_name','last_name']
- list_editable = ['username','email']
- xadmin.site.register(Users, UsersAdmin) # 将户信息数据表注册到xadmin后台显示
设置后台列表页面,自定义列也就是自定义一个非数据表的字段
在adminx.py文件里的数据表管理器里设置list_display=要显示的数据字段名称,当然也可以设置一个函数名称,在models里定义函数,在后台就会多一列,显示的函数返回值
models文件
自定义函数名称.short_description = '后台显示名称'
- class Course(models.Model):
- name = models.CharField(max_length=50, verbose_name='课程名称')
- desc = models.CharField(max_length=300, verbose_name='课程描述')
- detail = models.TextField(verbose_name='课程详情')
- degree = models.CharField(verbose_name='课程级别', choices=(('cj', '初级'), ('zj', '中级'), ('gj', '高级')), max_length=3)
- learn_times = models.IntegerField(default=0, verbose_name='学习时长(分钟)')
- students = models.IntegerField(default=0, verbose_name='学习人数')
- fav_nums = models.IntegerField(default=0, verbose_name='收藏人数')
- image = models.ImageField(upload_to='courses/%Y/%m', verbose_name='课程封面图', max_length=100)
- click_nums = models.IntegerField(default=0, verbose_name='点击数')
- add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
- class Meta:
- verbose_name = '课程'
- verbose_name_plural = verbose_name
- # 自定义列
- def hqzhjie(self):
- return 555
- hqzhjie.short_description = '章节数'
- def __str__(self):
- return self.name # 设置在xadmin后台显示字段, 注意如果此表被另外的了外键关联了,这个返回字段就是外键表的外键名称
adminx.py
- class CourseAdmin(object): # 自定义数据表管理器类
- # 设置xadmin后台显示字段
- list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
- 'fav_nums', 'image', 'click_nums', 'add_time', 'hqzhjie']
- # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
- search_fields = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
- 'fav_nums', 'image', 'click_nums']
- # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
- list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
- 'fav_nums', 'image', 'click_nums', 'add_time']
- model_icon = 'fa fa-clone'
- xadmin.site.register(Course, CourseAdmin) # 将数据表注册到xadmin后台显示
结果
设置后台列表页面,自定义列也就是自定义一个非数据表的字段,统计当前id被多少条数据外键关联
self.外键类名称(小写).all().count() 统计外键关联了当前主键的数据
注意:只能统计外键关联了当前主键的数据
models文件
- class Course(models.Model):
- name = models.CharField(max_length=50, verbose_name='课程名称')
- desc = models.CharField(max_length=300, verbose_name='课程描述')
- detail = models.TextField(verbose_name='课程详情')
- degree = models.CharField(verbose_name='课程级别', choices=(('cj', '初级'), ('zj', '中级'), ('gj', '高级')), max_length=3)
- learn_times = models.IntegerField(default=0, verbose_name='学习时长(分钟)')
- students = models.IntegerField(default=0, verbose_name='学习人数')
- fav_nums = models.IntegerField(default=0, verbose_name='收藏人数')
- image = models.ImageField(upload_to='courses/%Y/%m', verbose_name='课程封面图', max_length=100)
- click_nums = models.IntegerField(default=0, verbose_name='点击数')
- add_time = models.DateTimeField(default=datetime.now, verbose_name='添加时间')
- class Meta:
- verbose_name = '课程'
- verbose_name_plural = verbose_name
- # 自定义列
- def hqzhjie(self):
- return self.lesson_set.all().count()
- hqzhjie.short_description = '章节数'
- def __str__(self):
- return self.name # 设置在xadmin后台显示字段, 注意如果此表被另外的了外键关联了,这个返回字段就是外键表的外键名称
adminx.py
- class CourseAdmin(object): # 自定义数据表管理器类
- # 设置xadmin后台显示字段
- list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
- 'fav_nums', 'image', 'click_nums', 'add_time', 'hqzhjie']
- # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
- search_fields = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
- 'fav_nums', 'image', 'click_nums']
- # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
- list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students',
- 'fav_nums', 'image', 'click_nums', 'add_time']
- model_icon = 'fa fa-clone'
- xadmin.site.register(Course, CourseAdmin) # 将数据表注册到xadmin后台显示
设置后台列表页面,自定义列也就是自定义一个非数据表的字段,获取一个字段值拼接成超链接
mark_safe() 允许执行里面html代码
self.image(字段名称) 获取当前字段值
models文件
- class Users(models.Model): # 创建类必须继承models.Model,类名将是在数据库里的表名称
- username = models.CharField(max_length=150, verbose_name='用户名', default='', null=False, blank=False)
- password = models.CharField(max_length=128, verbose_name='密码', default='', blank=False) # 密码字段,长度128,默认值为空字符,前端不允许用户输入空
- last_login = models.DateTimeField(verbose_name='登录日期', null=True, blank=True) # 允许为空
- first_name = models.CharField(max_length=30, verbose_name='拓展1', null=False)
- last_name = models.CharField(max_length=30, verbose_name='拓展2', null=False)
- email = models.EmailField(max_length=254, verbose_name='邮箱', null=False, blank=False)
- is_active = models.BooleanField(max_length=1, default=0, verbose_name='是否激活', null=False)
- date_joined = models.DateTimeField(verbose_name='注册日期', null=True)
- nick_name = models.CharField(max_length=50, verbose_name='昵称', default='')
- birday = models.DateField(verbose_name='生日', null=True)
- gender = models.CharField(max_length=6, verbose_name='性别', choices=(("male", "男"), ("female", "女")), default='male')
- address = models.CharField(max_length=100, verbose_name='地区', default='')
- mobile = models.CharField(max_length=11, verbose_name='手机', null=True, blank=True)
- image = models.ImageField(upload_to='image/%Y/%m', verbose_name='头像', default='image/default.png', max_length=100,storage=ImageStorage())
- class Meta:
- verbose_name = '用户信息'
- verbose_name_plural = verbose_name
- # 自定义列
- def hqzhjie(self):
- from django.utils.safestring import mark_safe # 允许执行html代码
- pj_url = '<a href="/media/{0}">跳转</a>'.format(self.image) # 获取头像字段拼接成连接地址
- return mark_safe(pj_url) # 返回当前头像的连接地址
- hqzhjie.short_description = '头像'
- def __str__(self):
- return self.username
adminx.py
- class UsersAdmin(object): # 自定义用户信息数据表管理器类
- # 设置xadmin后台显示字段
- list_display = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
- 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined','hqzhjie']
- # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
- search_fields = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile']
- # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
- list_filter = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
- 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined']
- model_icon = 'fa fa-user-plus'
- ordering = ['-id']
- readonly_fields = ['password']
- exclude = ['first_name','last_name']
- xadmin.site.register(Users, UsersAdmin) # 将户信息数据表注册到xadmin后台显示
结果
设置后台列表页面,设置自动刷新
这是一个插件,放在xadmin/plugins/refresh.py
在当前APP里的adminx.py文件里的数据表管理器里设置refresh_times参数即可使用该插件
- class UsersAdmin(object): # 自定义用户信息数据表管理器类
- # 设置xadmin后台显示字段
- list_display = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
- 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined','hqzhjie']
- # 设置xadmin后台搜索字段,注意:搜索字段如果有时间类型会报错
- search_fields = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile']
- # 设置xadmin后台过滤器帅选字段,时间用过滤器来做
- list_filter = ['username', 'password', 'nick_name', 'gender', 'email', 'address', 'mobile',
- 'first_name', 'last_name', 'is_active', 'birday', 'last_login', 'date_joined']
- model_icon = 'fa fa-user-plus'
- ordering = ['-id']
- readonly_fields = ['password']
- exclude = ['first_name','last_name']
- refresh_times = [3, 5]
- xadmin.site.register(Users, UsersAdmin) # 将户信息数据表注册到xadmin后台显示
结果
Xadmin目录结构说明
plugins是最重要的一个目录
第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明的更多相关文章
- 第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框
第三百九十五节,Django+Xadmin打造上线标准的在线教育平台—Xadmin集成富文本框 首先安装DjangoUeditor3模块 Ueditor HTML编辑器是百度开源的HTML编辑器 下载 ...
- 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置
第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置 设置后台某个字段的排序规则 在当前APP里的adminx.py文件里的数据表管理器里设置 order ...
- 第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置
第三百八十一节,Django+Xadmin打造上线标准的在线教育平台—xadmin全局配置 1.xadmin主题设置 要使用xadmin主题,需要在一个app下的adminx.py后台注册文件里,写一 ...
- 第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装
第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统,页面基于Bootstr ...
- 第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin管理员详情页面布局,导航图标设置
第三百八十二节,Django+Xadmin打造上线标准的在线教育平台—xadmin进阶 1.后台管理员详情页面布局 后台管理员详情页面,区块是可以拖动的,而且分为了很多个区块 这个页面的布局在xadm ...
- 第三百九十六节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,自定义列表页上传插件
第三百九十六节,Django+Xadmin打造上线标准的在线教育平台—其他插件使用说,自定义列表页上传插件 设置后台列表页面字段统计 在当前APP里的adminx.py文件里的数据表管理器里设置 ag ...
- 第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6
第三百九十九节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署CentOS6.5安装mysql5.6 1.检测系统是否已经安装过mysql或其依赖,若已装过要先将其删除,否则第4步 ...
- 第三百九十节,Django+Xadmin打造上线标准的在线教育平台—Django+cropper插件头像裁剪上传
第三百九十节,Django+Xadmin打造上线标准的在线教育平台—Django+cropper插件头像裁剪上传 实现原理 前台用cropper插件,将用户上传头像时裁剪图片的坐标和图片,传到逻辑处理 ...
- 第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册
第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册 基于类的路由映射 from django.conf.urls import url, incl ...
随机推荐
- Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6
Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱: ...
- Python数据可视化系列-01-快速绘图
快速绘图 数据图绘制 matplotlib的字库pyplot提供了快速绘制2D图标的API接口. import numpy as np import matplotlib.pyplot as plt ...
- U3D面试五
U3D面试题 配置Unity3D调试环境 Visual Studio Tools for Unity 访问http://unityvs.com 安装对应的版本 使用方法(生成项目文件,如何调试) Ar ...
- 设备树中ranges属性分析(1)
作者 彭东林 pengdonglin137@163.com 软件环境 Linux-4.10.17 Qemu+vexpress 概述 在设备树中有时会看到ranges属性,这个ranges属性可 ...
- 每次运行caffe代码之前需要考虑修改的地方
Train阶段: (1) train.sh中的solver.prototxt路径 (2) train.sh中的caffemodel路径 (3) train.sh中的 ...
- MUI DtPicker 显示自定义日期
MUI地址:http://dev.dcloud.net.cn/mui/ 首先引入相关JS CSS脚本. HTML代码: <input class="dt flat" styl ...
- CentOS6.9下安装python notebook
操作系统:CentOS6.9_x64 python版本 : python2.7.13 添加低权限新用户: useradd mike su mike 使用virtualenv安装python2.7环境 ...
- 《Unix&Linux大学教程》学习笔记6——Unix文件系统
1:Unix文件类型——3种 普通文件(常规文件):文本文件(纯文本.脚本.源程序.配置文件.html等).二进制文件(多媒体文件.数据库等) 目录:用于组织文件 伪文件:不存储数据,目的是提供一种服 ...
- O_DIRECT与O_SYNC区别(转)
O_DIRECT和O_SYNC是系统调用open的flag参数.通过指定open的flag参数,以特定的文件描述符打开某一文件. 这两个flag会对写盘的性能有很大的影响,因此对这两个flag做一些详 ...
- 抓取epsg.io的内容
简述 epsg.io是一个查询EPSG坐标系相关信息的好网站,内容很全.有各种格式的定义可以直接下载,也有坐标系的范围名称等相关信息,所以想抓取这些信息下来,方便对接各个系统. epsg.io本身是开 ...