[py][mx]xadmin详细设置-将app注册到xadmin
首先createsuperuser,创建用户, 然后登陆xadmin.
理解下models的各个字段
- 复数形式及返回
- 注册app
users/adminx.py
- 显示字段
users/adminx.py
注: 这里显示的顺序和列表顺序是一致的.
- 搜索字段(手动输入关键字搜索)search_fileds
users/adminx.py
一般不搜索时间,不好搜索. 这里看到还可以将数据导出各种格式.
到此为止,我们每个表的增删改查功能就齐全了.
- 过滤器list_filter(自动点选搜索), 可以通过时间来点点点过滤了
- 搜索字段和过滤器
class EmailVerifyRecordAdmin(object):
list_display = ['code', 'email', 'send_type', 'send_time']
search_fields = ['code', 'email', 'send_type']
list_filter = ['code', 'email', 'send_type', 'send_time']
- 修改app显示
app/__init__.py
default_app_config = "users.apps.UsersConfig"
users/apps.py
class UsersConfig(AppConfig):
name = 'users'
verbose_name = u"用户信息"
一个app下多个模型顺序
界面上的顺序和注册顺序一致
访问外键
course模型
一个course有多个lesson(章节), 章节里要过滤一些关于course的字段, 需要 course__name键的形式访问才会出现.
adminx.py
class LessonAdmin(object):
list_display = ['course', 'name', 'add_time']
search_fields = ['course', 'name', 'add_time']
list_filter = ['course__name', 'name', 'add_time']
代码
在users app下创建adminx.py
import xadmin
from users.models import EmailVerifyRecord, Banner
class EmailVerifyRecordAdmin(object):
list_display = ['code', 'email', 'send_type', 'send_time']
search_fileds = ['code', 'email', 'send_type']
list_filter = ['code', 'email', 'send_type', 'send_time']
xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
courses/adminx.py
#!/usr/bin/env python
# coding=utf-8
import xadmin
from courses.models import Course, Lesson, Video, CourseResourse
class CourseAdmin(object):
list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'fav_nums', 'image', 'click_nums',
'add_time']
search_fields = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'fav_nums', 'image', 'click_nums']
list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'fav_nums', 'image', 'click_nums',
'add_time']
xadmin.site.register(Course, CourseAdmin)
class LessonAdmin(object):
list_display = ['course', 'name', 'add_time']
search_fields = ['course', 'name', 'add_time']
list_filter = ['course__name', 'name', 'add_time']
xadmin.site.register(Lesson, LessonAdmin)
class VideoAdmin(object):
list_display = ['lesson', 'name', 'add_time']
search_fields = ['lesson', 'name']
list_filter = ['lesson', 'name', 'add_time']
xadmin.site.register(Video, VideoAdmin)
class CourseResourseAdmin(object):
list_display = ['course', 'name', 'download', 'add_time']
search_fields = ['course', 'name', 'download']
list_filter = ['course', 'name', 'download', 'add_time']
xadmin.site.register(CourseResourse, CourseResourseAdmin)
courses/__init__.py
default_app_config = "courses.apps.CoursesConfig"
courses/app.py
class CoursesConfig(AppConfig):
name = 'courses'
verbose_name = u"课程"
operation/xadmin.py
#!/usr/bin/env python
# coding=utf-8
import xadmin
from operation.models import UserAsk, CourseComments, UserFavorite, UserMessage, UserCourse
class UserAskAdmin(object):
list_display = ['name', 'mobile', 'course_name', 'add_time']
search_fields = ['name', 'mobile', 'course_name']
list_filter = ['name', 'mobile', 'course_name', 'add_time']
xadmin.site.register(UserAsk, UserAskAdmin)
class CourseCommentsAdmin(object):
list_display = ['user', 'course', 'comments', 'add_time']
search_fields = ['user', 'course', 'comments']
list_filter = ['user', 'course', 'comments', 'add_time']
xadmin.site.register(CourseComments, CourseCommentsAdmin)
class UserFavoriteAdmin(object):
list_display = ['user', 'course', 'fav_id', 'fav_type', 'add_time']
search_fields = ['user', 'course', 'fav_id', 'fav_type']
list_filter = ['user', 'course', 'fav_id', 'fav_type', 'add_time']
xadmin.site.register(UserFavorite, UserFavoriteAdmin)
class UserMessageAdmin(object):
list_display = ['user', 'message', 'has_read', 'add_time']
search_fields = ['user', 'message', 'has_read']
list_filter = ['user', 'message', 'has_read', 'add_time']
xadmin.site.register(UserMessage, UserMessageAdmin)
class UserCourseAdmin(object):
list_display = ['user', 'course', 'add_time']
search_fields = ['user', 'course']
list_filter = ['user', 'course', 'add_time']
xadmin.site.register(UserCourse, UserCourseAdmin)
organization/adminx.py
#!/usr/bin/env python
# coding=utf-8
import xadmin
from organization.models import CityDict, CourseOrg, Teacher
class CityDictAdmin(object):
list_display = ['name', 'desc', 'add_time']
search_fields = ['name', 'desc']
list_filter = ['name', 'desc', 'add_time']
xadmin.site.register(CityDict, CityDictAdmin)
class CourseOrgAdmin(object):
list_display = ['name', 'desc', 'click_nums',
'fav_nums', 'image', 'address', 'city', 'add_time']
search_fields = ['name', 'desc', 'click_nums',
'fav_nums', 'image', 'address', 'city']
list_filter = ['name', 'desc', 'click_nums',
'fav_nums', 'image', 'address', 'city', 'add_time']
xadmin.site.register(CourseOrg, CourseOrgAdmin)
class TeacherAdmin(object):
list_display = ['org', 'name', 'work_years', 'work_company',
'work_position', 'points', 'click_nums', 'fav_nums', 'add_time']
search_fields = ['org', 'name', 'work_years', 'work_company',
'work_position', 'points', 'click_nums', 'fav_nums']
list_filter = ['org', 'name', 'work_years', 'work_company',
'work_position', 'points', 'click_nums', 'fav_nums', 'add_time']
xadmin.site.register(Teacher, TeacherAdmin)
[py][mx]xadmin详细设置-将app注册到xadmin的更多相关文章
- 第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理
第三百八十节,Django+Xadmin打造上线标准的在线教育平台—将所有app下的models数据库表注册到xadmin后台管理 将一个app下的models数据库表注册到xadmin后台管理 重点 ...
- [py][mx]django添加后台课程机构页数据-图片上传设置
分析下课程页前台部分 机构类别-目前机构库中没有这个字段,需要追加下 所在地区 xadmin可以手动添加 课程机构 涉及到机构封面图, 即图片上传media设置, 也需要在xadmin里手动添加几条 ...
- django下的xadmin相关设置
后台设置中文在 settings.py LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = ...
- xadmin系列之启动、注册、分发
a.启动首先要加载settings中定义的INSTALLED_APPS列表中的app b.我们进入xadmin的XadminConfig文件 from django.apps import AppCo ...
- ios app: 使用企业license设置发布app的过程
ios开发者证书与企业证书的内容,关系,以及ios app 使用企业license设置发布app的过程 iOS是一个非常封闭的系统.授权文件(.mobileprovision)和签名证书文件(.c ...
- c# webConfig中的session超时详细设置
webConfig中的session超时详细设置 我们在webConfig中设置Session超时的时候,如果最后发行的地址是远程服务器,我们很多不是必须的属性并不用设置,如果设之后,倒不能让 ses ...
- Django框架(二)-- 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get
一.app 在Django中,APP可以用以下类比 大学 --------------------项目 计算机学院------------app01 土木学院 ------------ app02 1 ...
- django下创建多个app,如何设置每个app的urls
1.创建第二个app 假设我们项目P下面已经有了一个默认的app,名字是app1.现在我想创建第二个app,名字时app2. 进入pychram下的Terminal中,运行命令: python man ...
- Django框架(二)—— 基本配置:app注册、模板配置、静态文件配置、数据库连接配置post和get
目录 app注册.模板配置.静态文件配置.数据库连接配置post和get 一.app 二.模板配置 三.静态文件配置 四.数据库连接配置 五.get请求和post请求 六.新手三件套 七.登录功能案例 ...
随机推荐
- 题目1029:魔咒词典(map使用以及字符串读取函数总结)
题目链接:http://ac.jobdu.com/problem.php?pid=1029 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus // // ...
- Windows正向绑定shell和反向反弹shell的Python代码
Windows下的shell原理 经过查阅资料,使用os.dup2(nfd, ofd)的方式重定向socket的输入输出到windows系统的cmd是无法做到的,属于系统原因,不能直接复制Linux下 ...
- [工具] Textify – 复制不可能的窗口内容[Win]
Textify 是一款 Windows 下的小工具,能够复制那些平时无法复制的内容,比如错误提示.菜单按钮文字等等,只需要按下快捷键就可以随意复制,俗称复制不可能. http://rammichael ...
- java代码中实现android背景选择的selector-StateListDrawable的应用
首先定义一个获得StateListDrawable对象的方法: private StateListDrawable addStateDrawable(Context context, int idNo ...
- Unity3D笔记 英保通三 脚本编写 、物体间通信
一.脚本编写 1.1.同一类型的方法JS和C#的书写方式却不一样主要还是语法,在工程中创建一个Cube 分别把JSTest.js和CSharp.cs 添加到Cube中 JSTest.js #pragm ...
- Java秒杀简单设计三:数据封装类
上一篇https://www.cnblogs.com/taiguyiba/p/9828984.html 整合了数据库表和Dao层代码 这一篇继续设计数据封装类: 涉及到获取秒杀地址,查询,返回秒杀结果 ...
- node项目部署相关问题
process.env process.env属性返回一个对象,包含了当前Shell的所有环境变量. 通常的做法是,新建一个环境变量NODE_ENV,用它确定当前所处的开发阶段,生产阶段设为produ ...
- iOS - UIEvent事件及UIResponder响应者
在iOS中不是所有的对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件,称之为响应者对象: UIApplication.UIViewController.UIView都继承自U ...
- 在CentOS6.8下安装Docker
在CentOS6.8下安装Docker 一.查看系统版本 [root@localhost opt]# uname -a Linux localhost.localdomain -.el6.x86_64 ...
- http访问tomcat server的一个流程
Tomcat Server处理一个http请求的过程 假设来自客户的请求为: http://localhost:8080/wsota/wsota_index.jsp 1) 请求被发送到本机端口8080 ...