Django打造在线教育平台_day_3: 搭建后台管理系统Xadmin
xadmin是比Django自带的admin更加强大的系统
1、安装xadmin的两种方式:
方式一:pip install xadmin
方式二:github下载最新的源码(推荐,因为功能最新)
2、方式一安装:虚拟环境下
pip install xadmin
python3的环境安装xadmin时,直接pip install xadmin出现
README.rst这个文件的编码有问题,可以内容没什么重要的,可以直接到github上下载安装包,然后新建一个txt空文件,把文件名改成README.rst,替换原来的文件
https://github.com/sshwsfc/xadmin,替换成功后,把压缩包放到一个文件夹中,在命令窗口中进入存放压缩包的文件下,执行pip命令 。
3、在settings.py和urls.py中配置
#settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users', # 注册App 'operation', 'courses', 'organization', # 添加以下两个app配置 'xadmin', 'crispy_forms', ] --------------------------------- #urls.py from django.conf.urls import url from django.contrib import admin import xadmin urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^xadmin/', xadmin.site.urls), ]
4、删除users/admin.py中的代码,Tools 工具栏运行 run manage.py Task再更新数据表,输入:(完成后数据库会有xadmin开头的表)
makemigrations
migrate
5、重起系统:
方式二安装:https://github.com/sshwsfc/xadmin下载源码,解压把xadmin文件复制到项目的根中新建的extra_apps文件中
1、在setting.py中设置一下路径:
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
2、把EmailVerifyRecord注册到xadmin后台管理系统:
# 在apps\users中创建一个adminx.py文件 import xadmin from .models import EmailVerifyRecord class EmailVerifyRecordAdmin(object): list_display=['code','email','send_type','send_time'] #控制显示列数 search_fields=list_display=['code','email','send_type'] #控制搜索框的显示 list_filter = ['code','email','send_type','send_time'] #控制筛选 xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)
list_display=['code','email','send_type','send_time']作用是
search_fields=list_display=['code','email','send_type']作用是
list_filter = ['code','email','send_type','send_time'] 筛选作用
3、在users/models.py中重载EmailVerifyRecord类型的__str__方法
def __str__(self): return '{0}({1})'.format(self.code, self.email)
同理注册Banner
class BannerAdmin(object): list_display = ['title', 'image', 'url', 'index','add_time'] # 列表显示 search_fields = ['title', 'image', 'url', 'index'] # 搜索 list_filter = ['title', 'image', 'url', 'index','add_time'] # 筛选 xadmin.site.register(Banner, BannerAdmin)